使用Kruise Rollout实现灰度发布(金丝雀&A/B Testing)
Kruise Rollout是基于Kubernetes的一个标准扩展组件,可以配合原生工作负载(Deployment、StatefulSet)以及OpenKruise工作负载(CloneSet、Adcanced StatefulSet),实现金丝雀发布、A/B Testing发布和蓝绿发布等功能。实现灰度发布、A/B Testing发布和蓝绿发布等功能。本文通过示例介绍如何使用Kruise Rollout灰度发布云原生应用。
索引
前提条件
已创建Kubernetes集群。具体操作,请参见创建Kubernetes托管版集群。
如需使用A/B Testing或金丝雀发布的能力,集群版本需为1.19及以上版本。
如需使用分批发布能力,则集群版本需为1.16及以上版本。
已安装kubectl-kruise。关于kubectl-kruise安装路径,请参见kubectl-kruise。
Kruise Rollout介绍
Kruise Rollout是OpenKruise社区开源的渐进式交付框架。Kruise Rollout支持配合流量和实例灰度的灰度发布、蓝绿发布、A/B Testing发布。基于Prometheus Metrics指标,Kruise Rollout还可以实现发布过程的自动化分批与暂停,并提供旁路的无感对接、兼容已有的多种工作负载(Deployment、CloneSet、StatefulSet)。更多信息,请参见Kruise Rollout。
Kruise Rollout是一种旁路式的工作机制。您只需配置一份Rollout资源并将其下发到K8s集群中,后续的业务发布、升级均无需额外操作,并且可以与Helm、PaaS平台低成本地无缝对接。使用Kruise Rollout实现灰度发布架构如下图所示。
准备工作
安装Kruise Rollout组件。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面,单击应用管理页签,然后在ack-kruise卡片右下方,单击安装。
在弹出的对话框确认信息后,单击确定。
下文