在我的微服务架构中,我有一个微服务头盔图,用于将其部署到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不变
为此,您可以在YAML中使用IF
语句。可以在Github上找到很好的例子。
在this服务中,在YAML的开头,您可以在第一行中查看if语句:
{{- if .Values.replication.enabled }}
表示values.yaml
包含replication.enabled
值,正好是here。您需要为nginx
,varnish
或php
创建其中一些。
因此默认为replication.enabled = false
replication:
enabled: false
您可以在README.md中找到相同的信息。
Parameter Description Default ... replication.enabled Enable replication false
何时使用helm upgrade . --set condotion=true
它只会升级语句为true
的YAML。此解决方案不是最好的解决方案,它与
Helm
想法背道而驰。此外,它还需要进行许多手动更改。我认为更好的解决方案是创建3个图表。将
php
,nginx
和varnish
分开,然后升级。