我是使用Helm的新手,因此不确定在进行两次部署时哪种方法最好。
我已经为我的应用程序创建了一个图表。它包含两个部署:
我应该将它们保留在同一图表中还是应该为app-mysql.yaml创建一个子图?
最佳答案
可以同时使用这两种方法,具体取决于您要如何构造部署。
您应该记住以下几点
注意事项
单张图表的好处
单一图表警告
{{.Release.Name}}
都已经改变)。 关于版本控制的注意事项
您可以拥有一个用于对所有子图表进行测试的主图表,并独立打包这些子图表,但所有内容都保留在同一仓库中。
例如,我通常保留以下任一内容:
. / helm / charts / whatever / charts / subchart1
. / helm / charts / whatever / charts / subchart2
. / helm / charts / whatever / values.yaml
要么
. / helm / charts / whatever-master / values.yaml
. / helm / charts / whatever-master / requirements.yaml
. / helm / charts / whatever-subchart1 / values.yaml
. / helm / charts / whatever-subchart2 / values.yaml
并使用主图表上的requirements.yaml从
file://../whatever-subchartx
中提取。这样,我可以拥有
whatever-stress-test
和whatever-subcomponent-unit-test
,同时仍然可以灵活地单独部署具有不同发布周期的组件(如果需要)。最后,这还取决于您的升级策略。与单张图表相比,金丝雀升级可能会要求您以更特定的方式处理有状态微服务,因此请进行相应计划。
关于kubernetes - 带两次部署的 Helm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543895/