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

时间:2018-07-07 16:40:40

标签: visual-studio kubernetes kubernetes-helm

我正在尝试向与eShopOnContainers示例项目非常相似的微服务项目中添加头盔。

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

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

1 个答案:

答案 0 :(得分:1)

我的实践经验是,在使用Helm实现的微服务体系结构中,每个服务都应具有自己的Helm图表。

真正的问题是Helm对递归依赖关系的处理不佳。一个典型的体系结构声明是,每个服务都有其自己的独立存储,而没有服务会“借用”另一个存储。如果图表A和B都在其m.gameweek = (SELECT COALESCE(MIN(CASE WHEN m2.status < 5 THEN m2.gameweek END), MAX(m2.gameweek) ) FROM `match` m2 ) 中说他们需要一些数据库作为依赖项,而您的“包装器”图表W取决于A和B,那么Helm的解析器将实例化 single 数据库相关性图表,并将其用于两个组件。

此样式在某种程度上也更易于部署。如果将Docker image标签作为图表的参数,则可以完全独立于其他所有内容部署每个图表/服务。使用一张“包装纸”图表,您需要不断地重新部署该图表并协调对其特定值的更改。 (相反的情况是,要知道整个系统的哪些特定版本全部部署在一个地方,要花些技巧。)