Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 蓝绿色部署,带舵图_Kubernetes_Kubernetes Helm_Blue Green Deployment_Canary Deployment - Fatal编程技术网

Kubernetes 蓝绿色部署,带舵图

Kubernetes 蓝绿色部署,带舵图,kubernetes,kubernetes-helm,blue-green-deployment,canary-deployment,Kubernetes,Kubernetes Helm,Blue Green Deployment,Canary Deployment,我们可以使用“Helm图表”和 helm install --name the-release helm/the-service-helm --namespace myns 我们使用 helm upgrade --recreate-pods the-release helm/the-service-helm --namespace myns 有没有一种方法可以使用“掌舵图”来实现“蓝/绿”部署?让我们从定义开始 既然有,让我们从定义开始 根据: 蓝绿部署方法通过确保您有两个尽可能相同的生产

我们可以使用“Helm图表”和

helm install --name the-release  helm/the-service-helm --namespace myns
我们使用

helm upgrade --recreate-pods the-release helm/the-service-helm --namespace myns
有没有一种方法可以使用“掌舵图”来实现“蓝/绿”部署?

让我们从定义开始 既然有,让我们从定义开始

根据:

蓝绿部署方法通过确保您有两个尽可能相同的生产环境来实现这一点。在任何时候,其中一个,比如说蓝色,是活的。当您准备新版本的软件时,您将在绿色环境中进行最后阶段的测试。一旦软件在绿色环境中工作,您就切换路由器,以便所有传入的请求都进入绿色环境-蓝色的请求现在处于空闲状态

蓝色/绿色
不建议在头盔中使用。但也有解决办法
  • 根据to,不建议在
    蓝/绿
    金丝雀
    部署时使用
    头盔

  • 基于头盔顶部,至少有3种解决方案,见下文

  • 然而,对于这种情况,有一个掌舵图

舵本身(TL;DR:不推荐) 赫尔姆本身并不适合这种情况。见他们的解释:

Helm的工作方式更像传统的包管理器,以优雅的方式将图表从一个版本升级到下一个版本(多亏了pod活跃性/就绪性探测和部署更新策略),就像人们期望的
apt-upgrade
一样。与package manager风格的升级工作流相比,蓝色/绿色部署是一个非常不同的beast;蓝色/绿色在工具链中处于更高的级别,因为围绕这些部署的用例需要逐步进入/退出策略、渐进的流量迁移和回滚。正因为如此,我们决定蓝色/绿色部署超出了Helm的范围,尽管一个在幕后使用Helm的工具(或者类似istio的东西)很可能能够处理这个用例

基于
Helm的其他解决方案
至少有三种基于
Helm
顶部的解决方案进行了描述和比较:

通过Booking.com :Kubernetes使用头盔的本机多集群金丝雀或蓝绿色卷展栏

它通过依赖舵来实现这一点,并使用舵图作为配置部署单元。Shipper的应用程序对象提供了一个用于为图表指定值的接口,就像helm命令行工具一样。 Shipper直接从ChartMuseum之类的图表存储库中使用图表,并将对象安装到集群中。这具有一个很好的特性,即可以使用常规的Kubernetes身份验证和RBAC控件来管理对Shipper API的访问

Kubernetes原生多集群金丝雀或蓝绿色卷展栏(使用头盔)

你可以试试:


中等博客帖子:

这可能会对您有所帮助,访问Istio并不是一个直接的解决方案(尽管它确实支持我称之为“绿松石”的模式,在这种模式下,它可以将可配置的部分流量路由到每个副本)。它对安装服务的两个副本没有任何帮助。你是对的:是。但也有一个对Istio的挑战
kubectl create -f <(istioctl kube-inject -f cowsay-v1.yaml) # deploy v1
kubectl create -f <(istioctl kube-inject -f cowsay-v2.yaml) # deploy v1