舵更新selectif模板文件(特定服务和部署yaml文件)

时间:2019-11-28 15:08:26

标签: kubernetes microservices kubernetes-helm

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

1 个答案:

答案 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获得有关变更管道逻辑的建议。