特定微服务的蓝绿部署
Posted
技术标签:
【中文标题】特定微服务的蓝绿部署【英文标题】:Blue Green Deployment for particular MicroService 【发布时间】:2017-04-28 11:56:09 【问题描述】:我正在使用 Kubernetes 集群来部署我们的一堆微服务。我能够同时管理所有微服务的蓝绿部署,如下所示
我的问题是,有时我只想部署 App1 或 App2 或两者都不是所有微服务。这可以使用蓝绿部署来管理吗?
Implemented Things:(想用蓝绿策略只部署App3)
如果我使用蓝色部署运行 BlueApp3,并且 GreenApp1 和 GreenApp2 重新启动 BlueApp3。然后我测试了我的整个应用程序
一旦它可以正常工作,我会将 BlueApp3 转换为 GreeApp3,如下所示
-
这个策略好吗?
如果不是,那为什么?
是否需要一次部署所有的 MicorServices 来实现蓝绿部署(会导致不必要的部署)
对于一个特定的微服务,我所遵循的蓝绿部署策略的优缺点是什么。
【问题讨论】:
【参考方案1】:我建议将您的部署策略从组合完全切换到每个微服务。这包括您将不再运行全蓝或全绿部署这一事实。
您可以为给定的服务启动新的部署,当它到位时,将您的 kubernetes 服务下的选择器从 app: app2, flavor: green
切换到 app: app2, flavor: blue
,当认为已验证时,只需删除绿色的部署对象。
在 k8s 上做蓝绿色的一个挫折是你没有真正利用 k8s 部署所提供的潜力以及它们对 RollingUpdates 的原生支持
【讨论】:
您能否详细说明您提到的使用 k8s 进行蓝绿部署的挫折? kubernetes.io/docs/user-guide/deployments 使您能够通过更新部署规范来滚动更新服务。使用 B-G 方法,您必须自己编写大部分脚本 您可以使用 bg-kube 轻松实现上述每个微服务的 B-G 方法,只需使用 kubernetes 清单和可选的.env
文件。以上是关于特定微服务的蓝绿部署的主要内容,如果未能解决你的问题,请参考以下文章