当前位置: 首页 > Linux

K8S实战(21)-部署策略:蓝绿部署+滚动部署+灰度部署+金丝雀部署

时间:2023-04-06 21:15:59 Linux

前言如何降低对用户的影响?发布策略。更新历史20200720-初稿-左成礼原文地址-https://blog.zuolinux.com/2020/07/20/how-to-deployment.html蓝绿部署流程准备A/B两个集群,运行相同程序。项目升级时,先将集群A从负载均衡器中移除,再部署新版本。ClusterB仍然提供服务。升级后,集群A加入负载均衡器,集群B从负载均衡器中移除。优点:发布流畅,不会因发布而中断服务,策略简单,回滚速度快,用户无资源消耗感知,硬件成本高,服务器资源多一倍以上。滚动部署过程首先启动一台运行新版本的新服务器并加入生产环境。然后停止一个旧版本服务器,更新到新版本,加入生产环境。以此类推,直到集群中的所有服务器都升级到新版本。优点解决蓝绿发布成本高的问题。如果业务需要10台服务器,那么总共升级11台服务器就够了。缺点部署周期长,发布策略复杂。如果此时用户访问出现问题,无法快速判断是新版本问题还是旧版本的bug导致的。即无法进行精确的流量控制。金丝雀部署,也称为灰度部署过程,将部分服务器升级到新版本,进行精确的流量控制,然后将指定源IP的一小部分流量引导到这些服务器。确认这些用户没有问题后,将所有服务器升级到新版本。K8S中可以使用两套Deployments。一组Deployments运行新版本的Pod。通过ingress映射后,将指定源区域的解析或者公司内部用户的解析通过DNS指向ingress。优点因为我们控制了指定源对新版本的IP访问,当出现问题时,我们可以知道受影响的用户访问的是新版本还是旧版本,从而避免了滚动发布的缺点。缺点还是避免不了新版本出现问题后对用户的影响,但我们已经控制在可控范围内。结语金丝雀部署,即灰度发布,是一种比较完善的应用发布方案。联系我微信公众号:zuolinux_com