helm update selectif模板文件(特定服务和部署yaml文件)

问题描述 投票:0回答:1

在我的微服务架构中,我有一个微服务头盔图,用于将其部署到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不变

kubernetes microservices kubernetes-helm
1个回答
0
投票
这是可能的,但是不威胁作为最佳实践。

为此,您可以在YAML中使用IF语句。可以在Github上找到很好的例子。

this服务中,在YAML的开头,您可以在第一行中查看if语句:

{{- if .Values.replication.enabled }}

表示values.yaml包含replication.enabled值,正好是here。您需要为nginxvarnishphp创建其中一些。

因此默认为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个图表。将phpnginxvarnish分开,然后升级。

© www.soinside.com 2019 - 2024. All rights reserved.