openshift - OpenShift:如何基于 ImageStream 更新应用程序
问题描述
我在 OpenShift 4.2 上创建了一个项目,其 ImageStream 正在从 Quay.io 中提取图像:
oc new-project xxx-imagestream
oc import-image is:1.0 --from quay.io/xxx/myimage:latest --confirm --reference-policy local
现在我创建一个新项目来托管基于该 ImageStream 的应用程序
oc new-project xxx-app
oc new-app --name myapp -i xxx-imagestream/is:1.0
该应用程序已构建,我可以通过公开它来使用它。(但没有创建 Build 或 BuildConfig。为什么???)
现在我用新版本更新 Quay.io 上的镜像,并将新版本导入 xxx-imagestream 项目:
oc import-image is:2.0 --from quay.io/xxx/myimage:latest --confirm --reference-policy local
问题是:如何更新我的应用程序(myapp)?换句话说,我怎样才能基于更新的 ImageStream 启动一个新的“myapp”版本?
解决方案
(但没有创建 Build 或 BuildConfig。为什么???)
ABuildConfig
仅在您使用“Source to Image” (S2I) 功能时创建,并且仅在您想要从源创建容器映像时才需要。在您的情况下,图像已经存在,因此无需构建任何东西。唯一oc new-app
要做的就是部署您现有的映像,无需构建。
问题是:如何更新我的应用程序(myapp)?换句话说,我怎样才能基于更新的 ImageStream 启动一个新的“myapp”版本?
您正在寻找“部署触发器”,特别是“ImageChange 部署触发器”。ReplicationController
每当imagestreamtag
更改内容时(推送新版本的图像时),ImageChange 触发器都会产生新的。
附带说明一下,您还可以定期在 ImageStreams 中自动导入新图像版本(请参阅文档)。
推荐阅读
- android-studio - 为什么我只看到官方 android 类的反编译源代码?
- c++ - stof()/stoi() 的 C++ 无效参数(std::invalid_argument: stoi: 无转换)
- php - Laravel Collection::toArray() 触发额外的数据库查询
- pytorch - 如何为 PyTorch 中的特定张量释放 GPU 内存?
- javascript - Gatsby 无法从 GraphQL 查询中创建多个子部分?
- javascript - 您如何从 monaco 编辑器中检索主题?
- kotlin - ImageView 不尊重 CardView 的大小
- python-3.x - 如何在数据框列值中查找字符串
- visual-studio-2012 - Visual Studio - 菜单选项 - 向右或向左浮动
- c - 时钟()可以在while循环中变慢吗?