Helm 是否应为每个项目或每个解决方案配置图表



我正在尝试将helm添加到一个与eShopOnContainers示例项目非常相似的微服务项目中。

https://github.com/dotnet-architecture/eShopOnContainers

我的问题是图表文件夹和配置应该在解决方案级别、每个项目还是两者的组合添加?

我的实践经验是,在使用 Helm 实现的微服务架构中,每个单独的服务都应该有自己的 Helm 图表。

真正的问题是 Helm 不能很好地处理递归依赖关系。 典型的体系结构声明是每个服务都有自己独立的存储,并且没有服务"借用"另一个服务的存储。 如果图表 A 和 B 都在他们的requirements.yaml中说他们需要一些数据库作为依赖项,并且您的"包装器"图表 W 依赖于 A 和 B,那么 Helm 的解析器将实例化单个数据库依赖项图表并将其用于两个组件。

这种样式也更容易部署。 如果您将 Docker 镜像标记作为图表的参数,则可以完全独立于其他所有内容部署每个图表/服务。 使用一个"包装器"图表,您需要不断重新部署该图表并协调对其特定值的更改。 (与此相反的是,要知道整个系统的哪些特定版本都部署在一个地方有点棘手。

最新更新