蓝绿部署
蓝绿发布提供零宕机部署,即在保留旧版本的同时部署新版本。在任何时候,只有其中一个版本处于活跃状态,接收所有流量,另一个版本保持空闲状态。如果运行出现问题,您可以快速回滚到旧版本。
准备工作
- 您需要启用 KubeSphere 服务网格。
- 您需要创建一个企业空间、一个项目和一个帐户 (
project-regular
),务必邀请该帐户到项目中并赋予operator
角色。有关更多信息,请参见创建企业空间、项目、帐户和角色。 - 您需要启用应用治理并有一个可用应用,以便您可以实现该应用的蓝绿部署。本教程使用示例应用 Bookinfo。有关更多信息,请参见部署 Bookinfo 和管理流量。
创建蓝绿部署任务
-
以
project-regular
身份登录 KubeSphere,前往灰度发布页面,在灰度策略选项卡下,点击蓝绿部署右侧的发布任务。 -
输入名称然后点击下一步。
-
在灰度组件选项卡,从下拉列表选择您的应用以及想实现蓝绿部署的服务。如果您也使用示例应用 Bookinfo,请选择 reviews 并点击下一步。
-
如下图所示,在灰度版本选项卡,添加另一个版本(例如
v2
),然后点击下一步:备注
截图中的镜像版本为v2
。 -
在策略配置选项卡,要让应用版本
v2
接管所有流量,请选择接管所有流量,然后点击创建。 -
蓝绿部署任务创建后,会显示在任务状态选项卡下。点击可查看详情。
-
稍等片刻后,您可以看到所有流量都流向
v2
版本: -
新的部署也已创建。
-
您可以执行以下命令直接获取虚拟服务来查看权重:
kubectl -n demo-project get virtualservice -o yaml
备注
- 当您执行上述命令时,请将
demo-project
替换成您自己的项目(即命名空间)名称。 - 如果您想使用 KubeSphere 控制台上的 Web Kubectl 来执行命令,则需要使用
admin
帐户。
- 当您执行上述命令时,请将
-
预期输出结果:
... spec: hosts: - reviews http: - route: - destination: host: reviews port: number: 9080 subset: v2 weight: 100 ...
下线任务
待您实现蓝绿部署并且结果满足您的预期,您可以点击任务下线来移除 v1
版本,从而下线任务。
反馈
这篇文章对您有帮助吗?
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。
页面内容