我们可以使用带有'Helm Charts'的应用程序
helm install --name the-release helm/the-service-helm --namespace myns
然后,我们使用
对部署进行“滚动升级”helm upgrade --recreate-pods the-release helm/the-service-helm --namespace myns
是否可以使用“头盔图表” 实现 “蓝色/绿色” 部署?
答案 0 :(得分:4)
从Helm手册中可以看到,不建议将Helm用于蓝色/绿色或金丝雀部署。
至少有3种基于Helm的解决方案,请参见下文
但是该情况下有Helm图表。
头盔本身不适合这种情况。查看他们的解释:
direct support for blue / green deployment pattern in helm · Issue #3518 · helm/helm
Helm在传统软件包管理器的意义上工作更多,以一种优雅的方式将图表从一个版本升级到另一个版本(这要归功于Pod的活跃性/就绪性探针和部署更新策略),就像人们对{{ 1}}上班。与升级工作流的程序包管理器风格相比,蓝/绿部署是非常不同的野兽。蓝色/绿色在工具链中的地位更高,因为围绕这些部署的用例需要采用进/出策略,逐步的流量迁移和回滚。因此,我们认为蓝色/绿色部署对于Helm而言是超出范围的,尽管在幕后利用Helm的工具(或类似istio之类的东西)更有可能能够处理该用例。
apt upgrade
的解决方案至少有三种基于Helm
的解决方案,描述并比较了here:
bookingcom/shipper:使用Helm进行Kubernetes原生多集群金丝雀或蓝绿色部署
它通过依赖Helm并使用Helm Charts作为配置部署的单位来做到这一点。发货人的Application对象提供了一个界面,用于指定图表的值,就像helm命令行工具一样。 托运人直接从ChartMuseum之类的Chart资料库中消费Charts,并将对象本身安装到集群中。它具有很好的属性,可以使用常规的Kubernetes身份验证和RBAC控件来管理对Shipper API的访问。
使用Helm进行Kubernetes本地多集群金丝雀或蓝绿色的部署
您可以尝试一些like this:
Helm
kubectl create -f <(istioctl kube-inject -f cowsay-v1.yaml) # deploy v1
弗拉格团队撰写了一份指南:Blue/Green Deployments - Flagger 本指南向您展示如何使用Flagger和Kubernetes自动执行蓝色/绿色部署
此外,按照Kamol Hasan的建议,您可以尝试以下图表:puneetsaraswat/HelmCharts/blue-green。
kubectl create -f <(istioctl kube-inject -f cowsay-v2.yaml) # deploy v1