用于启动部署滚动更新的自动替代方案

时间:2017-08-11 10:55:49

标签: kubernetes kubectl

因此,为了更新在pod上运行的图像,我必须修改部署配置(yaml文件),并运行类似kubectl apply -f deploy.yaml的内容。

这意味着,如果我不是手动编辑yaml文件,我将不得不使用一些模板/搜索和替换功能。哪个不太理想。

有没有更好的方法?

似乎有kubectl rolling-update命令,但我不确定这是否适用于'部署'。

例如,运行以下内容:kubectl rolling-update wordpress --image=eu.gcr.io/abcxyz/wordpress:deploy-1502443760

产生错误:

error: couldn't find a replication controller with source id == default/wordpress

1 个答案:

答案 0 :(得分:2)

我用它来更改部署中的图像:

kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1

如果您将yaml文件视为真实来源,那么在yaml中使用stable之类的标记,并在移动标记时仅发出kubectl set image命令(使用sha256图像ID实际触发rollout;图像名称匹配为字符串,因此即使标记现在指向不同的图像,从:stable:stable的更新也是noop。

有关详细信息,请参阅updating a deployment

以上要求将部署副本计数设置为1,这在此处说明:https://stackoverflow.com/a/45649024/1663462