【发布时间】:2021-01-08 00:26:31
【问题描述】:
我希望将 Kubernetes 资源上的现有注释应用到底层 YAML 配置文件。例如,此命令将成功找到所有标签为“app=helloworld”或“app=testapp”的 pod,并使用“xyz=test_anno”进行注释:
kubectl annotate pods -l 'app in (helloworld, testapp)' xyz=test_anno
但是,这只会将注释应用到正在运行的 pod,不会更改 YAML 文件。如何强制对 YAML 文件进行这些更改,使其成为永久性更改,无论是事后还是作为kubectl annotate 的一部分开始?
【问题讨论】:
-
您的 YAML 文件和 Kubernetes 资源没有以任何方式链接,因此您不能使用 kubectl 更改您的文件。您可以查看 kustomize 以添加默认注释,或者只是从部署的 pod 中获取 YAML 文件(例如
kubectl get pods -o yaml或kubectl get deployment -o yaml)。 -
正如 char 所说,您不能使用 kubectl 更改您的 yaml 文件。如果您正在使用部署,您可以使用
kubectl edit deployment xyz编辑部署文件并添加所需的注释。请说明您的 yaml 文件在哪里,以及您是如何使用它们的。 -
我会编辑 YAML 文件,将它们提交到源代码管理,然后
kubectl apply它们。这是一个工作流程,您始终从 YAML 开始并让集群反映它,而不是修改集群并尝试使您的源代码与之匹配。
标签: kubernetes annotations yaml containers kubectl