K8S篇之Ingress Nginx 精确权重金丝雀发布(生产级)

K8s + Ingress Nginx 精确权重金丝雀发布(生产级)

基于 Ingress Nginx 官方 Canary 功能、支持精确流量权重控制的金丝雀发布方案,无需依赖 ServiceMesh(Istio),仅用 K8s 原生组件就能实现「按百分比精确切流量」

一、核心原理

Ingress Nginx 提供了 Canary 注解,通过配置不同的 Ingress 规则和权重,实现如下:
1.主 Ingress:承载绝大部分流量(如 95%)到旧版本;
2.Canary Ingress:承载指定权重流量(如 5%)到新版本;
3.无需调整 Pod 副本数,直接通过 Nginx 负载均衡层控制流量比例;
4.支持秒级调整权重、秒级回滚(删除 Canary Ingress 即可)。

二、核心 Canary 注解(必记)

注解注解作用注解示例
nginx.ingress.kubernetes.io/canary: “true”标记该 Ingress 为金丝雀规则必须设置为 true