当前,我正在使用以下set image
命令更新要部署的映像的版本:
$ kubectl set image deployments myapp myapp=caarlos0/myapp:v2
Run Code Online (Sandbox Code Playgroud)
然后,我用以下命令查看更改rollout status
:
$ kubectl rollout status deployments myapp
Run Code Online (Sandbox Code Playgroud)
通过这种方式发现的问题是:
有时候,似乎根本没有触发部署,并且当我致电时rollout status
,出现如下错误:
$ kubectl rollout status deployments myapp
Waiting for deployment spec update to be observed...
error: timed out waiting for the condition
Run Code Online (Sandbox Code Playgroud)该rollout history
命令将CHANGE-CAUSE
as 显示为<none>
,但我找不到在其中显示任何有用内容的方法。
那么,我是在做错事(还是不是以最佳方式)?如何改善这个工作流程?
你在做正确的事。在更新部署文档中,您会发现:
注意:当且仅当 Deployment 的 pod 模板(即
.spec.template
)发生更改时才会触发 Deployment 的 rollout ,例如更新模板的标签或容器映像。其他更新,例如扩展部署,不会触发推出。
因此,$ kubectl set image deployments/app <image>
如果<image>
尚未为您的容器配置,运行只会触发推出。
更改原因可用于通过将--record
标志附加到您的命令来记录用于触发 rollout 的命令(请参阅检查 rollout 历史记录)。
归档时间: |
|
查看次数: |
6281 次 |
最近记录: |