首页/开发/CI/CD 与发布速查/原生 K8s 双 Deployment 金丝雀
发布策略60 条

原生 K8s 双 Deployment 金丝雀

不引入额外组件的最小可用方案:新旧版本各一个 Deployment、共享标签由同一 Service 承接,用副本数近似控制流量比例。

CI/CD 与发布速查开发更新于 2026-10-12
做法两个 Deployment 相同 pod 标签,Service 按标签选全部 Pod
流量比例近似 = 新副本数/总副本数
放量操作kubectl scale 调整副本
局限比例不精确;无法按请求或用户维度控制

按副本放量

按副本放量
kubectl scale deployment/web-v2 --replicas=1   # 约 10%
kubectl scale deployment/web-v2 --replicas=5   # 约 50%
kubectl scale deployment/web-v1 --replicas=0
要求精确权重、按 header 分流或自动分析时,改用 Ingress canary、网格或 Argo Rollouts 等带路由能力的方案。

易错点

  • 比例靠副本数近似:HPA 或节点调度变化会改变实际流量分布
  • 两个 Deployment 的探针与资源规格不一致:观测对比失去意义

数据来源与参考

  • Kubernetes 文档《Service》
  • Kubernetes 文档《Deployments》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌