使用 Helm 管理多个环境的最佳实践
Best practices for managing multiple environments with Helm
我不清楚管理具有多个环境的应用程序的最佳实践是什么,该应用程序共享模板文件但每个环境具有不同的变量。例如,我们部署开发、暂存和生产环境。他们使用相同的 helm 模板,但我为每个环境设置了不同的变量。
当前文件结构:
helm/
├── templates/
│ ├── _helpers.tpl
│ ├── deploy.yaml
│ └── ingress.yaml
│ └── service.yaml
│ └── managed-certs.yaml
│ └── NOTES.txt
├── Chart.yaml
├── values-production.yaml
├── values-staging.yaml
├── values-develop.yaml
现在每个环境我都有两个不同的值文件,我将以下内容传递给 helm
helm install . --values=values-production.yaml
但是我们无法使用上述方法正确管理版本控制。
我找不到关于管理应用程序多个环境的最佳实践的可靠文档。我遇到了 helmfile
这似乎解决了这个问题,但他们的文档不清楚。管理 kubernetes 的生态系统令人困惑,任何帮助表示赞赏。
Weave Flux 是处理图像和图表版本控制的好方法。它使用基于 gitops 的方法,通过更新代码存储库(用于图表版本控制)或图像存储库(用于应用程序版本控制)来管理所有内容。
编织通量:https://github.com/weaveworks/flux
Weaveworks 网站上的 Gitops 讨论:https://www.weave.works/technologies/gitops/
使用 helm 和多个环境的示例实现:https://github.com/stefanprodan/gitops-helm/blob/master/README.md
我不清楚管理具有多个环境的应用程序的最佳实践是什么,该应用程序共享模板文件但每个环境具有不同的变量。例如,我们部署开发、暂存和生产环境。他们使用相同的 helm 模板,但我为每个环境设置了不同的变量。
当前文件结构:
helm/
├── templates/
│ ├── _helpers.tpl
│ ├── deploy.yaml
│ └── ingress.yaml
│ └── service.yaml
│ └── managed-certs.yaml
│ └── NOTES.txt
├── Chart.yaml
├── values-production.yaml
├── values-staging.yaml
├── values-develop.yaml
现在每个环境我都有两个不同的值文件,我将以下内容传递给 helm
helm install . --values=values-production.yaml
但是我们无法使用上述方法正确管理版本控制。
我找不到关于管理应用程序多个环境的最佳实践的可靠文档。我遇到了 helmfile
这似乎解决了这个问题,但他们的文档不清楚。管理 kubernetes 的生态系统令人困惑,任何帮助表示赞赏。
Weave Flux 是处理图像和图表版本控制的好方法。它使用基于 gitops 的方法,通过更新代码存储库(用于图表版本控制)或图像存储库(用于应用程序版本控制)来管理所有内容。
编织通量:https://github.com/weaveworks/flux
Weaveworks 网站上的 Gitops 讨论:https://www.weave.works/technologies/gitops/
使用 helm 和多个环境的示例实现:https://github.com/stefanprodan/gitops-helm/blob/master/README.md