目前,我正在使用set image
命令更新要部署的映像版本:
$ kubectl set image deployments myapp myapp=caarlos0/myapp:v2
然后我用rollout status
:
$ kubectl rollout status deployments myapp
我这样做时遇到的问题是:
有时候,似乎根本没有触发部署,当我调用rollout status
时,我会收到这样的错误:
$ kubectl rollout status deployments myapp
Waiting for deployment spec update to be observed...
error: timed out waiting for the condition
rollout history
命令将CHANGE-CAUSE
显示为<none>
,我找不到让它显示任何有用内容的方法。
那么,我做错了什么(或者不是最好的方式)?如何改进此工作流程?
答案 0 :(得分:3)
你正在做正确的事。在Updating a deployment文档中,您可以找到:
注意:当且仅当部署的广告连播模板(即
.spec.template
)发生更改时才会触发部署的推出,例如更新模板的标签或容器图像。其他更新(例如扩展部署)不会触发部署。
如果尚未为您的容器配置$ kubectl set image deployments/app <image>
,那么正在运行<image>
只会触发推广。
更改原因可用于记录用于触发推出的命令,方法是在命令中附加--record
标志(参见Checking rollout history)。
答案 1 :(得分:0)