OpenShift:如何基于ImageStream更新应用程序
我使用ImageStream在OpenShift 4.2上创建了一个项目,该项目正在从Quay.io中提取图像:OpenShift:如何基于ImageStream更新应用程序,openshift,quay.io,Openshift,Quay.io,我使用ImageStream在OpenShift 4.2上创建了一个项目,该项目正在从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
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
该应用程序是构建的,我可以通过公开它来使用它。(但是没有创建构建或构建配置。为什么?)
现在,我使用新版本更新Quay.io上的图像,并将新版本导入xxx imagestream项目:
oc import-image is:2.0 --from quay.io/xxx/myimage:latest --confirm --reference-policy local
问题是:如何更新我的应用程序(myapp)?换句话说,如何基于更新的ImageStream启动新的“myapp”构建
(但是没有创建构建或构建配置。为什么?)
BuildConfig
仅在您使用“源到映像”(S2I)功能时创建,并且仅在您希望从源创建容器映像时才需要。在您的情况下,映像已经存在,因此不需要构建任何内容。oc-new-app
唯一要做的就是部署现有映像,无需构建
问题是:如何更新我的应用程序(myapp)?换句话说,如何基于更新的ImageStream启动新的“myapp”构建
您正在查找“”,特别是“ImageChange部署触发器”。每当imagestreamtag
的内容发生更改时(当推送图像的新版本时),ImageChange触发器将产生一个新的ReplicationController
另一方面,您还可以定期自动导入ImageStreams中的新图像版本(请参阅)。如果您的图像流
--reference-policy source
在这种情况下,使用
oc -import-image [...]
更新“本地”ImageStream,而不是
oc import-image is:2.0 --from quay.io/xxx/myimage:latest --confirm --reference-policy local
您应该更新现有的本地ImageStream标记
oc tag quay.io/xxx/myimage:latest is:2.0 --reference-policy local
此命令将自动触发应用程序的新部署。将其添加到deploymentConfig中
triggers:
- type: ConfigChange
- imageChangeParams:
automatic: true
containerNames:
- <your-container-name>
from:
kind: ImageStreamTag
name: '<image_name>:latest'
namespace: <your-namespace>
type: ImageChange
触发器:
-类型:ConfigChange
-imageChangeParams:
自动:正确
集装箱名称:
-
发件人:
种类:ImageStreamTag
名称:':最新'
名称空间:
类型:ImageChange
非常感谢你,西蒙。我知道触发器是用来“自动化”部署的。如果我现在要部署和更新映像,该怎么办?“oc卷展栏”?@Guildenstern70是的,您可以使用oc卷展栏
重新运行部署。请注意,这将只是展开部署的当前定义,这意味着如果指定了“旧”图像标记,它仍将展开旧图像标记。因此,您可能需要更新部署使用的标记,然后使用oc卷展栏
。当然,如果您使用latest
或类似的标签,这将按预期工作。谢谢。据我所知,通过这种配置,我可以在映像更改时自动部署。但我想决定何时部署。