higress 结合 kruise rollout可以实现End to End Canary release 发布怎么做_专家答疑样例-Higress官网
云栖回顾 | 2024 云栖大会微服务和网关相关演讲材料点此了解

higress 结合 kruise rollout可以实现End to End Canary release 发布怎么做

发布时间 2024-09-26


用户问题 :

higress 结合 kruise rollout可以实现End to End Canary release 发布怎么做


专家官方解答 :

要实现End to End的金丝雀发布流程,结合Higress和Kruise Rollout,可以遵循以下详细步骤操作:

1. 环境准备

确保你已具备以下前提条件:

  • 安装Higress:根据安装部署文档指引完成Higress的安装。
  • 安装Kruise Rollout:通过 Helm 安装 Kruise Rollout 组件,命令如下:
    helm install kruise-rollout openkruise/kruise-rollout --version 0.3.0-rc.0
  • 安装kubectl-kruise:为了更方便地操作Kruise资源,安装kubectl-kruise命令行工具

2. 应用部署基础配置

假设你已经有了一个名为demo的服务,其Deployment、Service和Ingress配置如知识中所示。这包括定义了服务的副本数量、端口映射以及外部访问入口。

3. 定义金丝雀发布策略

接下来,你需要为demo服务定义金丝雀发布策略。通过创建一个Rollout资源对象,具体配置如同知识中给出的例子。这个策略会控制新版本Pod的逐步部署及其接收的流量比例,确保在整个发布过程中流量的平滑过渡。

4. 更新镜像并启动金丝雀发布

修改demo服务的Deployment配置,将镜像更新为新版本(例如,从v1更新到v2)。提交更改后,观察Rollout控制器开始按照你定义的策略执行金丝雀发布过程。

5. 监控与确认

  • 监控Rollout状态:使用kubectl get rollout命令查看当前Rollout的状态,确保发布按计划进行。如遇暂停点,需根据实际情况决定是否继续。
  • 检查Pod状态:通过kubectl get pods查看新旧版本Pod的数量变化,验证金丝雀步骤是否正确执行。
  • 验证流量分配:使用流量测试工具或直接访问应用,确认不同阶段流量是否按预期比例分配给新旧版本服务。

6. 分阶段推进发布

  • 在每个金丝雀步骤完成后,根据测试结果和业务需求,通过kubectl rollout resume命令继续到下一个发布阶段,或者根据需要进行回滚。
  • 最终,当所有步骤执行完毕,新版本将全量替代旧版本,完成整个金丝雀发布流程。

解释

通过上述步骤,我们实现了从环境准备、基础配置、策略定义到逐步发布的全过程。Higress作为入口网关,配合Kruise Rollout的精细化发布策略,能够有效地控制流量切换,确保在不影响用户体验的前提下安全地完成版本升级。整个流程高度自动化,同时保留了人工干预的灵活性,以应对发布过程中的不确定性,保障了发布的稳定性和效率。

---------------

参考链接 :

  • 专家经验:higress 通过 OpenKruise Rollout 实现灰度发布

---------------

答疑服务说明:

本内容经由技术专家审阅的用户问答的镜像生成,我们提供了专家智能答疑服务,使用方法: 用法1: 在页面的右下的浮窗”专家答疑“。 用法2: 点击专家答疑页(针对部分网站不支持插件嵌入的情况)

另:

有其他开源产品的使用问题?点击访问阿里AI专家答疑服务

反馈

如问答有错漏,欢迎点:差评给我们反馈。