【发布时间】:2021-10-01 21:41:26
【问题描述】:
我有多个基于使用 Helm 部署的同一个图表的应用程序。假设您使用不同的配置多次部署您的应用:
helm install myapp-01 mycharts/myapp
helm install myapp-02 mycharts/myapp
helm install myapp-03 mycharts/myapp
在我更新图表文件后,我想更新所有版本,或者可能是某个范围的版本。我设法创建了一个这样的 PoC 脚本:
helm list -f myapp -o json | jq -r '.[].name' | while read i; do helm upgrade ${i} mycharts/myapp; done
虽然这可行,但我需要做很多事情才能拥有完整的功能和错误控制。 是否有任何 CLI 工具或我可以在 CI/CD 环境中使用的东西来更新大量版本(比如数百个)?我一直在研究 Rancher 和 Autohelm,但找不到这样的功能。
【问题讨论】:
-
使用普通的
kubectl和kustomize,这更容易做到。您部署的所有操作都是kubectl apply,您可以将目录作为参数传递。参见例如kubernetes.io/docs/tasks/manage-kubernetes-objects/… -
能否通过为每个应用设置一个覆盖文件夹来实现?
-
数百?您远远不需要真正的部署系统。看看 argo、flux、jenkinsX 等。
-
@jmservera 是的,这是解决问题的一种方法。然后一个命令将它们全部部署
kubectl apply -k -
感谢@Jonas,我可以使用 kustomize 来实现,现在它更易于使用且更灵活。稍后我将看看 argo 和 Flux,看看我是否可以使用其他一些工具来增强回滚。感谢您的帮助。
标签: kubernetes kubernetes-helm helm3