Kubernetes 部署策略详解
在 Kubernetes 中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。 选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会使用到的策略: 重建(recreate):停止旧版本部署新版本 滚动更新(rolling-update):一个接一个地以滚动更新方式发布新版本 蓝绿(blue/green):新版本与旧版本一起存在,然后切换流量 金丝雀(canary):将新版本面向一部分用户发布,然后继续全量发布 A/B测(a/b testing):以精确的方式(HTTP 头、cookie、权重等)向部分用户发布新版本。 A/B测 实际上是一种基于数据统计做出业务决策的技术。在 Kubernetes 中并不原生支持,需要额外的一些高级组件来完成改设置(比如Istio、Linkerd、Traefik、或者自定义 Nginx/Haproxy 等)。 你可以在 Kubernetes 集群上来对上面的这些策略进行测试,下面的仓库中有需要使用到的资源清单: https://github.com/ContainerSolutions/k8s-deployment-strategies 接下来我们来介绍下每种策略,看看在什么场景下面适合哪种策略。 重建(Recreate) - 最好在开发环境 策略定义为 Recreate 的