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 |
