1

我正在尝试找到批量编辑大量 Kubernetes 资源上的注释的最佳方法。似乎 Kustomize 可能是最好的选择:

  1. 资源已经是 kustomization.yaml 的一部分
  2. 然后我可以使用新的或修改后的注释来编辑 kustomization.yaml
  3. kubectl apply -k ./根据需要使用新注释更新所有相关资源

不幸的是,这使得所有 pod 都终止并重新启动,这有时比我希望的要长。在没有 Kustomize 的情况下应用注释,当 YAML 没有其他更改时,不需要重新部署,我很乐意做类似的事情,但批量。任何提示表示赞赏!

4

1 回答 1

3

似乎您的 pod 由一些副本集(部署、守护程序集、状态集等)管理,这是正确的。更新这些将导致更新 pod 规范,从而导致重新部署。

你可以看看kubectl annotate命令。

一些例子来自kubectl annotate --help

Examples:
  # Update pod 'foo' with the annotation 'description' and the value 'my frontend'.
  # If the same annotation is set multiple times, only the last value will be applied
  kubectl annotate pods foo description='my frontend'

  # Update a pod identified by type and name in "pod.json"
  kubectl annotate -f pod.json description='my frontend'

  # Update pod 'foo' with the annotation 'description' and the value 'my frontend running nginx', overwriting any
existing value.
  kubectl annotate --overwrite pods foo description='my frontend running nginx'

  # Update all pods in the namespace
  kubectl annotate pods --all description='my frontend running nginx'

  # Update pod 'foo' only if the resource is unchanged from version 1.
  kubectl annotate pods foo description='my frontend running nginx' --resource-version=1

  # Update pod 'foo' by removing an annotation named 'description' if it exists.
  # Does not require the --overwrite flag.
  kubectl annotate pods foo description-
于 2020-11-05T03:05:42.683 回答