首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes Blue green部署

kubernetes Blue green部署
EN

Stack Overflow用户
提问于 2020-03-02 17:06:32
回答 2查看 259关注 0票数 3

Kubernetes Blue-green部署,我正在修补Kubernetes-application-service,以将流量从app-v1重定向到app-v2(在负载均衡器后面)。如果在“修补”过程中有任何连接正在进行,是否会断开连接?如果不是的话!我怎样才能测试这个?

对于从app-v1到app-v2的热切换(没有任何连接丢失),您认为最好的版本部署方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2020-03-02 17:58:23

问题似乎是关于同时支持两个版本。这是一种Canary deployment,它使生产流量逐渐从app-v1转移到app-v2。

这可以通过以下方式实现:

  • 允许部署具有基于连接数量的自定义指标的HPA。也就是说,当它达到一定数量的连接时,可以扩展/缩小连接。
  • 允许同时进行两个部署,app-v1app-v1新流量通过一些入口注释路由到新部署,但仍然保持对旧版本的访问,因此不会丢弃现有连接。
  • 现在,所有新请求都将被路由到新版本。HPA最终会从旧版本缩减pods。(您甚至可以允许部署具有零个副本)。

除了你上面的问题蓝绿色部署。蓝绿色部署是指拥有两个相同的环境,其中一次只有一个环境处于活动状态,假设blue现在在生产环境中处于活动状态。一旦您有了可以部署的新版本,例如green,就可以单独部署和测试。最后,当您对绿色环境的测试结果感到满意时,您将流量切换到了绿色环境。因此green变为活动,而blue稍后变为空闲或终止。(参考自martin fowler article)。

在Kubernetes中,这可以通过两个相同的部署来实现。这是一个很好的reference

基本上,你可以有两个完全相同的部署,假设你有当前的部署my-deployment-blue在生产环境中。一旦您准备好了新版本,您就可以将其部署为一个全新的部署,比如说my-deployment-green,并使用单独的测试服务来测试green环境。最后,当所有测试都通过时,将流量切换到my-deployment-green

票数 1
EN

Stack Overflow用户

发布于 2020-10-09 01:22:40

如果您正在尝试在Kubernetes中实现蓝色/绿色,那么我的答案可能会对您有所帮助。

通过设置以下配置进行滚动更新

  1. maxUnavailable = 0
  2. maxSurge = 100%

多么?部署控制器首先将最新版本扩展到过时版本的100%。一旦最新版本健康,它会立即将过时的版本缩减到0%。

示例代码:

代码语言:javascript
复制
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
        image: nginx:1.14.2
        ports:
          - containerPort: 80
  strategy:
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 0
      type: RollingUpdate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60485503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档