Kubernetes helm 仅升级单个图表\应用程序

Kubernetes helm 仅升级单个图表\应用程序,kubernetes-helm,Kubernetes Helm,我有一个名为“所有服务”的图表,通常我会这样做,部署所有服务(如需求中所示): 这将部署以下服务: backup-service counter-service bridge-service 但是现在我只需要部署服务计数器服务,而不需要接触其他服务。可能吗?如果可能,如何实现?我理解分组确实意味着它需要一起部署,但可能存在您不想接触其他图表的情况。在vaule.yaml文件中,您可以添加变量以启用服务,例如backupservice enabled:true然后在requirements.ya

我有一个名为“所有服务”的图表,通常我会这样做,部署所有服务(如需求中所示):

这将部署以下服务:

backup-service
counter-service
bridge-service

但是现在我只需要部署服务计数器服务,而不需要接触其他服务。可能吗?如果可能,如何实现?我理解分组确实意味着它需要一起部署,但可能存在您不想接触其他图表的情况。

在vaule.yaml文件中,您可以添加变量以启用服务,例如
backupservice enabled:true
然后在requirements.yaml文件中,您可以为服务添加条件,例如

依赖项:
-名称:备份服务

条件:backupservicenabled.enabled

通常在Kubernetes中,如果您提交的某个对象与已经存在的对象相同,则不会发生任何事情。例如,假设您有一个名为
所有服务桥接服务
的部署,并且您提交了一个具有相同名称和相同内容的相同部署;Kubernetes核心控制器将查看新的部署,查看现有的吊舱是否与部署所要求的完全匹配,并且什么也不做。当我在这里说“提交”时,我指的是
kubectl apply
helm upgrade
完成的同等工作

假设您有一个Helm values文件

backup-service:
  tag: 1.2.3
counter-service:
  tag: 1.4.0
bridge-service:
  tag: 3.2.1
模板将
.Values.tag
复制到部署的
图像:
设置中。现在,假设您有一个
柜台服务的发布和更改

counter-service:
  tag: 1.5.0
您可以安全地
升级头盔
整个过程。是的,它将为另外两个服务生成一个新的部署规范并提交它们,但是由于图像标签(以及其他可能的细节)是相同的,因此不会产生净效果。即使有变化,豆荚的旋转也应该是相当常规的


如果一次只能升级一个子图表对您很重要,那么您需要将它们升级到顶级图表。(在其他情况下,我发现一个管理多个微服务的图表图表运行得不是特别好;例如,如果a需要Redis,B需要Redis,则同时安装a和B的组合伞形图表将只安装一个Redis并共享它,这可能是您不希望的。)

(这很可能会产生卸载备份服务的副作用。请使用
helm template
helm upgrade--dry run
仔细检查以确保!)
counter-service:
  tag: 1.5.0