蓝绿部署

蓝绿发布提供零宕机部署,即在保留旧版本的同时部署新版本。在任何时候,只有其中一个版本处于活跃状态,接收所有流量,另一个版本保持空闲状态。如果运行出现问题,您可以快速回滚到旧版本。

blue-green-0

准备工作

创建蓝绿部署任务

  1. project-regular 身份登录 KubeSphere,前往灰度发布页面,在灰度策略选项卡下,点击蓝绿部署右侧的发布任务

  2. 输入名称然后点击下一步

  3. 灰度组件选项卡,从下拉列表选择您的应用以及想实现蓝绿部署的服务。如果您也使用示例应用 Bookinfo,请选择 reviews 并点击下一步

  4. 如下图所示,在灰度版本选项卡,添加另一个版本(例如 v2),然后点击下一步

    blue-green-4

    备注

    截图中的镜像版本为 v2
  5. 策略配置选项卡,要让应用版本 v2 接管所有流量,请选择接管所有流量,然后点击创建

  6. 蓝绿部署任务创建后,会显示在任务状态选项卡下。点击可查看详情。

    blue-green-任务列表

  7. 稍等片刻后,您可以看到所有流量都流向 v2 版本:

    blue-green-6

  8. 新的部署也已创建。

    版本2-部署

  9. 您可以执行以下命令直接获取虚拟服务来查看权重:

    kubectl -n demo-project get virtualservice -o yaml
    

    备注

    • 当您执行上述命令时,请将 demo-project 替换成您自己的项目(即命名空间)名称。
    • 如果您想使用 KubeSphere 控制台上的 Web Kubectl 来执行命令,则需要使用 admin 帐户。
  10. 预期输出结果:

    ...
      spec:
        hosts:
        - reviews
        http:
        - route:
          - destination:
              host: reviews
              port:
                number: 9080
              subset: v2
            weight: 100
            ...
    

下线任务

待您实现蓝绿部署并且结果满足您的预期,您可以点击任务下线来移除 v1 版本,从而下线任务。

blue-green-7


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。