- 文档首页
API 网关
最佳实践
通过控制台实现 Nacos 蓝绿部署和灰度发布
最佳实践
通过控制台实现 Nacos 蓝绿部署和灰度发布
通过控制台实现 Nacos 蓝绿部署和灰度发布
API 网关深度集成火山引擎微服务引擎 Nacos,可实时动态获取 VKE 集群中部署的 Nacos 服务信息,作为 Nacos 服务对外提供服务的流量入口。同时,API 网关提供 Upstream 流量分配,方便用户进行服务的灰度发布,实现敏捷迭代、平滑升级。
本文为您介绍如何通过 API 网关实现 Nacos 蓝绿部署和灰度发布。
前提条件
- 已创建 VKE 集群,具体操作请参见 创建集群。
步骤一:部署应用
部署 v1 应用,并通过 API 网关对外提供服务。
- 为该 Upstream 添加 version: v1 版本标识。该标识对应 Nacos 服务中对应的 metadata(key:value),用于区分应用的不同版本。具体操作请参见 添加 Upstream 版本。 添加完成后, v1 应用即对应当前 Upstream 的 version1。
- 创建一条路由规则,将 sprint-cloud 暴露给外部用户。具体操作请参见 创建路由。 请求路径为/version,目标 Upstream 为 spring-cloud version1,权重为 100%。
-
-
步骤二:发布新版本
允许引流一小部分流量到服务新版本,待验证通过后,逐步调大流量,直至切流完毕,期间可伴随着新版本的扩容,旧版本的缩容操作,达到资源利用率最大化。
- 使用以下 YAML 样例,在容器服务控制台目标集群的 default 命名空间下部署 spring-cloud 服务的新版本 v2。灰度发布策略中,新版本的副本数无需与原始保持一致,仅需保持资源始终满足灰度流量,故将副本数调为 1。
- (可选)如果 v2 应用跨集群部署,需将 v2 应用所在 VKE 集群导入同一 API 网关实例。导入成功后,之前创建的 Upstream 将同时监听这两个集群的 default 命名空间下的 spring-cloud 服务。具体操作请参见 导入 MSE Nacos 信息。
- 为之前创建的 Upstream 添加 version: v2 版本标识。具体操作可参见 添加 Upstream 版本。添加完成后, v1 应用对应当前 Upstream 的 version1,v2 应用对应当前 Upstream 的 version2。
-
- 修改之前创建的路由规则,将流量按所需权重转发至新旧版本。具体操作可参见 管理路由。 本示例设置 v1 应用权重为 80%,v2 应用权重为 20%。
- 将 spring-cloud version1 的权重修改为 80%。
- 目标 Upstream 新增 spring-cloud version2,并将 version2 的权重配置为 20%。
-
- 可以发现,10 个请求中有 2 个请求转发至新版本 v2,流量比符合期望比例。
- 在真实业务场景中,新版本验证完毕后,便可继续调大访问新版本的流量权重。期间注意对新版本扩容,按需对旧版本缩容。
最近更新时间:2025.02.13 14:30:31