有没有办法为 Kubernetes 部署创建继承树?我有许多相似但不相同的部署。他们共享许多 ENV 变量,但不是全部。他们都使用相同的图像。
例如,我有一个开发部署,其配置几乎与生产部署相同,但环境变量指向不同的数据库后端。我有一个 celery 部署,其配置与生产部署相同,但是,它有不同的运行命令。最佳答案
Helm这是很多人正在使用的。它允许您为 kubernetes 描述符创建模板并传递参数以从模板生成描述符。
还有其他工具可用于通过将参数注入(inject)模板来生成 kubernetes 部署描述符的变体。 Ansible 也很受欢迎。但Helm与Kubernetes CNCF紧密相连。和社区,有一个很好的选择 official charts可用。
编辑:如果目标是使用单个 Docker 镜像启用不同的部署(例如,用于开发和生产),那么最好使用单个图表来处理。您可以为每个部署创建不同的值文件,并使用 --values
参数将所选值文件提供给 helm install。如果图表的某些部分仅有时适用,则可以将它们包装在 if
条件中以打开/关闭它们。
专门针对继承主题,有一个 example in the helm documention of how to take another chart as a parent/dependency and override its values我创建了a chart earlier that you can see in github那includes several other charts和 overrides parts of all of them via the values.yml 。它还在所包含的图表之间共享一些配置 with globals 。如果您希望使用父级来减少重复而不是加入多个应用程序,那么可以创建 base/wrapper chart但是it may turn out to be better to just duplicate config .
编辑(180119): Kustomize 的替代品可能很快become available in kubectl
关于kubernetes - Kubernetes 部署有继承的概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52724344/