kubernetes - Kubernetes 部署有继承的概念吗?

标签 kubernetes kubernetes-deployment

有没有办法为 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 githubincludes several other chartsoverrides 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/

相关文章:

使用同一个代码库但配置不同(环境变量)的 kubernetes 多个部署

docker - kubernetes卷挂载如何映射到docker卷

kubernetes - 使用 CSI 插件使用 Velero 备份 GKE 集群时,无法将 GCP 永久磁盘 PVC 恢复到另一个区域

security - 保护集群中 pod 之间的流量

kubernetes - Kubernetes Cronjobs 可以重用现有部署中的环境变量吗?

kubernetes - preStop 钩子(Hook)和终止GracePeriodSeconds 之间的关系

kubernetes - kubernetes是否有自己的负载均衡器?

linux - azure aks 无法从 acr 中提取图像

kubernetes - Helm 等到 kubernetes 上的依赖部署准备就绪

kubernetes - 为什么标签在一次部署中被提及 3 次