如何查看指定Pod关联的Deployment YAML文件及对应kubectl编辑命令
注意:Pod由Deployment等上层工作负载托管,直接修改Pod配置会在后续副本调度时被自动覆盖,所有配置变更请操作对应的上层Deployment资源
查看目标Pod对应Deployment的完整YAML内容
按以下步骤操作即可:
- 第一步:反查目标Pod所属的Deployment名称
将命令中<your-pod-name>替换为实际目标Pod名,<mynamespace>替换为对应命名空间,执行后可得到管理该Pod的ReplicaSet名称:
返回的ReplicaSet名称格式为kubectl get pod <your-pod-name> -n <mynamespace> -o jsonpath='{.metadata.ownerReferences[0].name}'<deployment-name>-<随机哈希字符串>,去掉末尾的随机哈希串,就是目标Deployment的名称。 - 第二步:导出Deployment完整YAML
拿到Deployment名称后执行以下命令,即可输出集群中存储的该Deployment全量YAML配置:
输出内容除集群自动注入的运行时字段(如uid、resourceVersion、status状态段等)外,其余内容和创建时提交的YAML完全一致。如果需要把YAML导出到本地文件备份,可以在命令后加重定向,例如:kubectl get deployment <your-deployment-name> -n <mynamespace> -o yamlkubectl get deployment <your-deployment-name> -n <mynamespace> -o yaml > deployment-backup.yaml
编辑Deployment YAML的kubectl命令
直接使用kubectl内置的edit子命令即可,执行后会调用系统默认文本编辑器加载该Deployment的完整YAML,修改完成后保存退出,配置会自动提交到集群生效:
kubectl edit deployment <your-deployment-name> -n <mynamespace>
如果需要指定使用的文本编辑器,可以在命令前加KUBE_EDITOR环境变量,比如指定用vim编辑的命令为:
KUBE_EDITOR=vim kubectl edit deployment <your-deployment-name> -n <mynamespace>
注意:编辑时不要修改集群自动生成的运行时字段,否则可能导致配置提交失败。
内容的提问来源于stack exchange,提问作者Henry
相关产品推荐
相关产品推荐

