Kubernetes/k8s 灰度发布 (deployment分批发布)

 

 

为何需要灰度发布

生产环境从来都需要心存敬畏的, 一旦变更失误会严重影响公网顾客的访问和体验,且实践过程中发现,发布和变更是两个重要的故障来源。

IDC迁移到K8S后,虽然K8S配置rolling策略可实现maxSurge=1/n , 分批升级工作负载deployment, 但分批之间是没有停停顿


疼点

1)缺陷:假设deployment_v1一组有10个pod, 内置rolling方式, 发布pod_1更新代码为v2版本后, 中间不作任何等待,就会继续发布pod 2-10,  PRD环境的业务代码是非常脆弱的, 万一v2出现异常, 即使运维/研发发现了异常, 也无法阻止pod2-10更新为v2版本。

2)替代方案:有人说用ISTIO、有人说用nginx-ingress,但感觉实现起来很重。不太适合国内中小企业使用。 最后突然想起selector,配置方法如下


灰度发布(selector)

Selector关联deployment_v1 / v2 到同一个service下

 

deployment_v1.yaml 和 v2.yaml 区别如

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值