Kubernetes 如何通过编辑yml文件更新部署
官员通过执行命令行Kubernetes 如何通过编辑yml文件更新部署,kubernetes,Kubernetes,官员通过执行命令行set,指示更新部署: kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 或者通过内联编辑(我想这将启动默认编辑器) 但是,这两个过程都使一致性变得更加困难,因为需要脱机使用启动和运行部署的my deployment.yml文件。(这就剥夺了控制清单版本的优势) 有办法去吗 通过文件启动部署 在需要时对相同的文件执行更新 是否通过指向相同的已更新文件来更新部署 您只需执行以下步骤即可完成此操作-
set
,指示更新部署:
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
或者通过内联编辑(我想这将启动默认编辑器)
但是,这两个过程都使一致性变得更加困难,因为需要脱机使用启动和运行部署的my deployment.yml
文件。(这就剥夺了控制清单版本的优势)
有办法去吗
- 通过文件启动部署
- 在需要时对相同的文件执行更新
- 是否通过指向相同的已更新文件来更新部署
kubectl apply -f deployment.yaml
这是我通常遵循的。您也可以使用kubectl修补程序或编辑 关于
kubectl apply
,另请参见?当我发出kubectl apply-f
时,我收到一条警告,不应将其用于以前通过kubectl create-f
创建的资源。老实说,关于命令式命令和声明式命令之间区别的文档让我有点困惑。嗯,你看过我链接的文档了吗?特别是上面写着的部分注意:要使用apply,请始终首先使用kubectl apply或kubectl create--save config创建资源
?谢谢,我错过了这一部分。。。我会在(重新)创建我的资源时尝试这种方法,以防它帮助我避免类似的警告。除非删除旧的部署,否则这种方法实际上不起作用。它应该可以正常工作。如果存在旧的部署,这将覆盖现有的部署。kubectl apply--filename deployment.yaml--namespace DEP_namespace
是一个不错的选择,但请确保将spec.containers.image
更新为新的映像。这可以工作,但旧的pod、replicaset等都存在,您需要手动清除所有内容
kubectl apply -f deployment.yaml