在我的微服务架构中,我有一个微服务头盔图,用于将其部署到Kubernetes中,每个微服务/图表都有3个吊舱
-helm
- chart.yaml
- values.yaml
- templates
- nginx-deployment.yaml
- nginx-service.yaml
- php-deployment.yaml
- php-service.yaml
- varnish-deployment.yaml
- varnish-service.yaml
执行时
helm upgrade --install my-analyzer ./helm/
三个Pod已更新(到目前为止还可以) 我的问题 : 我该如何使用Helm一次只升级一个或两个吊舱而不触摸其他吊舱 示例:升级nginx和清漆,但保持php不变
答案 0 :(得分:1)
我误解了你的问题。我已经编辑了答案。
不幸的是,无法在Helm中实现。
每次升级Helm
时都会创建新的Release
。它遍历Chart
中的所有YAML,并基于this order部署内部所有内容。
如果要执行某些部署操作,则可以在YAML中使用IF
语句。可以在Github上找到示例。
在this服务中,在YAML的开头,您可以在第一行中查看if语句:
{{- if .Values.replication.enabled }}
但是,如果第一个Release
在模板中包含特定的部署,而第二个不包含,则Helm将从第一个release
中删除第二个未包含的对象。
您唯一可以更改的是使用带有helm upgrade
标志的--set
,该标志可以覆盖某些默认值。
您还可以考虑从Alireza Davoodi或VAS获得有关变更管道逻辑的建议。