【问题标题】:How to write Kubernetes annotations to the underlying YAML files?如何将 Kubernetes 注释写入底层 YAML 文件?
【发布时间】: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 yamlkubectl get deployment -o yaml)。
  • 正如 char 所说,您不能使用 kubectl 更改您的 yaml 文件。如果您正在使用部署,您可以使用kubectl edit deployment xyz 编辑部署文件并添加所需的注释。请说明您的 yaml 文件在哪里,以及您是如何使用它们的。
  • 我会编辑 YAML 文件,将它们提交到源代码管理,然后 kubectl apply 它们。这是一个工作流程,您始终从 YAML 开始并让集群反映它,而不是修改集群并尝试使您的源代码与之匹配。

标签: kubernetes annotations yaml containers kubectl


【解决方案1】:

您可以通过一些小技巧使用kubectl patch 命令

kubectl patch $(k get po -l 'app in (helloworld, testapp)') -p '{"metadata":{"annotations":{"xyz":"test_anno"}}}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2015-09-08
    • 2015-10-20
    • 1970-01-01
    相关资源
    最近更新 更多