Ani*_*lve 8 deployment yaml cluster-analysis kubernetes kubectl
我是 Kubernetes 新手。我有一个具有多个部署(超过 150 个)的 K8 集群,每个部署都有超过 4 个可扩展的 pod。我需要增加集群中所有部署的资源限制;我知道我可以通过部署 YAML 直接增加此值。但是,我在想是否有任何方法可以一次性增加所有部署的资源。
提前感谢您的帮助。
OhH*_*ark 12
这里有几点需要指出:
使用策略合并补丁、JSON 合并补丁或 JSON 补丁更新资源的字段。
接受 JSON 和 YAML 格式。
请参阅下面的示例:
kubectl patch deploy deploy1 deploy2 --type json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/resources/limits/memory", "value":"120Mi"}]'
Run Code Online (Sandbox Code Playgroud)
或者:
kubectl patch deploy $(kubectl get deploy -o go-template --template '{{range .items}}{{.metadata.name}}{{" "}}{{end}}') --type json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/resources/limits/memory", "value":"120Mi"}]'
Run Code Online (Sandbox Code Playgroud)
如需进一步参考,请参阅此文档。
kubectl set resources deployment -l key=value --limits memory=120Mi
Run Code Online (Sandbox Code Playgroud)
sed、awk或xargs。例如:kubectl get deployments -o name | sed -e 's/.*\///g' | xargs -I {} kubectl patch deployment {} --type=json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/imagePullPolicy", "value": "Always"}]'
Run Code Online (Sandbox Code Playgroud)
或者:
kubectl get deployments -o name | awk '{print $1 }' | xargs kubectl patch deployment $0 -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
Run Code Online (Sandbox Code Playgroud)
如果您想将它们全部设置为相同的东西,您可以使用 kustomize 的“组件”系统。但这不太可能。更好的解决方案可能是编写一些 Python(或您喜欢的任何语言)脚本来修改所有 YAML 文件并将它们推回到源代码管理中。
| 归档时间: |
|
| 查看次数: |
6514 次 |
| 最近记录: |