因此,为了更新在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
答案 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。