背景信息
灰度及蓝绿发布是为新版本创建一个与老版本完全一致的生产环境,在不影响老版本的前提下,按照一定的规则把部分流量切换到新版本,当新版本试运行一段时间没有问题后,将用户的全量流量从老版本迁移至新版本。
其中AB测试就是一种灰度发布方式,一部分用户继续使用老版本的服务,将一部分用户的流量切换到新版本,如果新版本运行稳定,则逐步将所有用户迁移到新版本。
本文将介绍在K8S集群中如何通过Nginx Ingress Controller基于服务权重的流量来实现应用服务的灰度发布。
环境
需要在一套k8s集群部署两套应用,上线后,再删掉其中一套。
优点:节省资源
缺点:浪费人力
条件好的情况下:建议部署两套K8s,通过最外层流量负载均衡两套k8s实现灰度发布。
架构如下
实现注解实现蓝绿发布与灰度发布
- canary-*注解方式:使用
canary-*
Annotation配置蓝绿发布与灰度发布,canary-*
Annotation是社区官方实现的灰度发布方式。
第一步:灰度发布
步骤&