- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- APIG业务使用流程
- 创建用户并授权使用APIG
- 创建APIG实例
- 开放API
- 配置API调用授权(可选)
- 调用API
-
管理API
- 管理API概述
- 查看或编辑APIG的API信息
- 配置API的自定义认证
- 配置API的参数编排规则
- 自定义API的错误响应信息
- 克隆APIG的API
- 下线APIG的API
- 导入导出API
-
APIG的API设计文件扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-is-send-fg-body-base64
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- x-apigateway-auth-opt
- x-apigateway-result-normal-sample
- x-apigateway-result-failure-sample
- x-apigateway-authorizer
- x-apigateway-response
- x-apigateway-responses
- x-apigateway-pass-through
- x-apigateway-sample
- x-apigateway-content-type
- x-apigateway-orchestrations
- 配置API策略
- 配置凭据策略
- 管理APIG实例
- 查看监控指标与配置告警
- 查看APIG审计日志
- 共享版操作指导(仅存量用户使用)
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
专享版API(V2)
- 专享版-API分组管理
- 专享版-环境管理
- 专享版-环境变量管理
- 专享版-流控策略管理
- 专享版-API管理
- 专享版-签名密钥管理
- 专享版-签名密钥绑定关系管理
- 专享版-API绑定流控策略
- 专享版-设置特殊流控
- 专享版-APP授权管理
- 专享版-概要查询
- 专享版-域名管理
- 专享版-ACL策略管理
- 专享版-API绑定ACL策略
- 专享版-自定义认证管理
- 专享版-OpenAPI接口
- 专享版-VPC通道管理
- 专享版-监控信息查询
- 专享版-分组自定义响应管理
- 专享版-标签管理
- 专享版-实例特性管理
- 专享版-配置管理
- 专享版-实例管理
- 专享版-实例终端节点管理
- 专享版-实例标签管理
- 专享版-微服务中心管理
- 专享版-SSL证书管理
- 专享版-插件管理
- 专享版-凭据管理
- 专享版-凭据配额管理
- 专享版-异步任务管理
- 专享版-编排规则管理
- 专享版-实例自定义入方向端口管理
- 共享版API(仅存量用户使用)
- 权限策略和授权项
- 附录
- 修订记录
- SDK参考
-
常见问题
- 热门咨询
- 产品咨询
- 开放API
- 发布API
-
调用API
- 调用API失败的可能原因
- 调用API报“414 Request URI too large”
- 调用API报“The API does not exist or has not been published in the environment”
- 调用API报“No backend available”
- API的后端服务报“Backend unavailable”或“Backend timeout”
- API的后端服务报“Backend domain name resolution failed”
- 调用API报“Incorrect IAM authentication information”
- 调用API报“Incorrect app authentication information”
- 修改API后端服务的超时时间上限“backend_timeout”后未生效
- APIG对API请求体的大小是否有限制?
- API调用对请求的响应消息体限制
- 使用iOS系统时,如何使用APP认证调用API?
- 新建一个华为IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- APIG是否支持WebSocket数据传输?
- API的策略后端有多个时,怎么匹配和执行API请求?
- 如何通过APIG访问公网后端服务?
- API认证
- API策略
- 导入导出API
-
更多文档
-
用户指南(吉隆坡区域)
- 产品介绍
- 快速入门
- 新旧版本差异
- 总览
-
API管理
- 创建API分组
- 绑定域名
- 创建环境变量
- 新增网关响应
- 创建API
- 克隆API
- 开启跨域访问
- 调试API
- 授权API
- 发布API
- 下线API
-
导入导出API
- 限制与兼容性说明
- 导入API
- 导出API
-
扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- 查看API列表
- 支持HTTP2.0
- API策略
- 凭据管理
- 监控分析
- 实例管理
- SDK
- 调用已发布的API
- 权限管理
- 云审计服务支持的关键操作
-
常见问题
- 热门咨询
- API创建
-
API调用
- API调用失败的可能原因有哪些?
- API调用返回错误码如何处理?
- API调用报错“414 Request URI too large”
- "The API does not exist or has not been published in the environment."如何解决?
- No backend available,怎么解决?
- 后端服务调用失败“Backend unavailable”或超时“Backend timeout”原因分析
- 后端服务调用报错域名无法解析“Backend domain name resolution failed”
- 修改后端服务的超时时间上限“backend_timeout”后未生效
- 如何切换调用环境?
- 调用请求包最大支持多少?
- 使用iOS系统时,如何进行APP认证?
- 新建一个IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 应用(凭据)问题汇总
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- API网关是否支持WebSocket数据传输?
- API调用是否支持长连接
- 策略后端有多个时,怎么匹配和执行
- API调用对请求的响应消息体限制
- 如何通过APIG访问公网后端服务
- API认证鉴权
- API控制策略
- API发布
- API导入导出
- API安全
- 其他
- 修订记录
- 开发指南(吉隆坡区域)
-
API参考(吉隆坡区域)
- 使用前必读
- 如何调用API
-
专享版API(V2)
- 专享版-API分组管理
- 专享版-环境管理
- 专享版-环境变量管理
- 专享版-流控策略管理
- 专享版-API管理
- 专享版-签名密钥管理
- 专享版-签名密钥绑定关系管理
- 专享版-API绑定流控策略
- 专享版-设置特殊流控
- 专享版-APP授权管理
- 专享版-概要查询
- 专享版-域名管理
- 专享版-ACL策略管理
- 专享版-API绑定ACL策略
- 专享版-自定义认证管理
- 专享版-OpenAPI接口
- 专享版-VPC通道管理
- 专享版-监控信息查询
- 专享版-分组自定义响应管理
- 专享版-标签管理
- 专享版-实例特性管理
- 专享版-配置管理
- 专享版-实例管理
- 专享版-实例终端节点管理
- 专享版-实例标签管理
- 专享版-SSL证书管理
- 专享版-插件管理
- 专享版-凭据管理
- 专享版-凭据配额管理
- 专享版-异步任务管理
- 权限策略和授权项
- 附录
- 修订记录
-
用户指南(阿布扎比区域)
- 产品介绍
- 快速入门
- 新旧版本差异
- 总览
-
API管理
- 创建API分组
- 导入CCE工作负载
- 绑定域名
- 创建环境变量
- 新增网关响应
- 创建API
- 创建GRPC API
- 克隆API
- 开启跨域访问
- 调试API
- 授权API
- 发布API
- 下线API
-
导入导出API
- 限制与兼容性说明
- 导入API
- 导出API
-
扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-is-send-fg-body-base64
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- 查看API列表
- 支持HTTP2.0
- API策略
- 凭据管理
- 监控分析
- 实例管理
- SDK
- 调用已发布的API
- 权限管理
- 云审计服务支持的关键操作
-
常见问题
- 热门咨询
- API创建
-
API调用
- API调用失败的可能原因有哪些?
- API调用返回错误码如何处理?
- API调用报错“414 Request URI too large”
- "The API does not exist or has not been published in the environment."如何解决?
- No backend available,怎么解决?
- 后端服务调用失败“Backend unavailable”或超时“Backend timeout”原因分析
- 后端服务调用报错域名无法解析“Backend domain name resolution failed”
- 修改后端服务的超时时间上限“backend_timeout”后未生效
- 如何切换调用环境?
- 调用请求包最大支持多少?
- 使用iOS系统时,如何进行APP认证?
- 新建一个IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 应用(凭据)问题汇总
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- API网关是否支持WebSocket数据传输?
- API调用是否支持长连接
- 策略后端有多个时,怎么匹配和执行
- API调用对请求的响应消息体限制
- 如何通过APIG访问公网后端服务
- API认证鉴权
- API控制策略
- API发布
- API导入导出
- API安全
- 其他
- 修订记录
- 开发指南(阿布扎比区域)
-
API参考(阿布扎比区域)
- 使用前必读
- 如何调用API
-
专享版API(V2)
- 专享版-API分组管理
- 专享版-环境管理
- 专享版-环境变量管理
- 专享版-流控策略管理
- 专享版-API管理
- 专享版-签名密钥管理
- 专享版-签名密钥绑定关系管理
- 专享版-API绑定流控策略
- 专享版-设置特殊流控
- 专享版-APP授权管理
- 专享版-概要查询
- 专享版-域名管理
- 专享版-ACL策略管理
- 专享版-API绑定ACL策略
- 专享版-自定义认证管理
- 专享版-OpenAPI接口
- 专享版-VPC通道管理
- 专享版-监控信息查询
- 专享版-分组自定义响应管理
- 专享版-标签管理
- 专享版-实例特性管理
- 专享版-配置管理
- 专享版-实例管理
- 专享版-实例终端节点管理
- 专享版-实例标签管理
- 专享版-微服务中心管理
- 专享版-SSL证书管理
- 专享版-插件管理
- 专享版-凭据管理
- 专享版-凭据配额管理
- 专享版-异步任务管理
- 权限策略和授权项
- 附录
- 修订记录
- 最佳实践(阿布扎比区域)
- 用户指南(巴黎区域)
- 开发指南(巴黎区域)
- API参考(巴黎区域)
-
用户指南专享版(巴黎区域)
- 产品介绍
- 快速入门
- 新旧版本差异
- 总览
-
API管理
- 创建API分组
- 绑定域名
- 创建环境变量
- 新增网关响应
- 创建API
- 开启跨域访问
- 调试API
- 授权API
- 发布API
- 下线API
-
导入导出API
- 限制与兼容性说明
- 导入API
- 导出API
-
扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- 查看API列表
- API策略
- 凭据管理
- 监控分析
- 实例管理
- 调用已发布的API
- 权限管理
- 云审计服务支持的关键操作
-
常见问题
- 热门咨询
- API创建
-
API调用
- API调用失败的可能原因有哪些?
- API调用返回错误码如何处理?
- API调用报错“414 Request URI too large”
- "The API does not exist or has not been published in the environment."如何解决?
- No backend available,怎么解决?
- 后端服务调用失败“Backend unavailable”或超时“Backend timeout”原因分析
- 后端服务调用报错域名无法解析“Backend domain name resolution failed”
- 修改后端服务的超时时间上限“backend_timeout”后未生效
- 如何切换调用环境?
- 调用请求包最大支持多少?
- 使用iOS系统时,如何进行APP认证?
- 新建一个IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 应用(凭据)问题汇总
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- API网关是否支持WebSocket数据传输?
- API调用是否支持长连接
- 策略后端有多个时,怎么匹配和执行
- API调用对请求的响应消息体限制
- 如何通过APIG访问公网后端服务
- API认证鉴权
- API控制策略
- API发布
- API导入导出
- API安全
- 其他
- 修订记录
- 开发指南专享版(巴黎区域)
-
API参考专享版 (巴黎区域)
- 使用前必读
- 如何调用API
- 专享版API(V2)
- 权限策略和授权项
- 附录
- 修订记录
-
用户指南(吉隆坡区域)
- 通用参考
链接复制成功!
使用APIG专享版开放云容器引擎CCE工作负载实施步骤
准备CCE工作负载信息
- 创建集群。
- 登录云容器引擎控制台,在“集群管理”页面购买CCE Standard集群或CCE Turbo集群。此处选择CCE Standard集群,容器网络模型为“VPC网络”,具体操作步骤请参见购买CCE集群。
- 集群创建完成后,记录容器网段。
- 在APIG专享版实例的“路由”中添加容器网段。
- 登录API网关控制台,在左侧导航栏中“实例管理”。
- 单击对应实例名称,进入实例信息页面。
- 在“路由”区域添加容器网段。
- 创建工作负载。
- 在云容器引擎控制台的“集群管理”页面,单击已创建的集群名称,进入集群详情。
- 在左侧导航栏中选择“工作负载”。
- 单击“创建负载”。此处选择“无状态负载 Deployment”负载类型,具体操作步骤请参见《云容器引擎用户指南》。
您可以在“高级配置 > 标签与注释”中设置“Pod标签”,便于之后根据标签切换工作负载与服务版本。此处为“app=deployment-demo”,“version=v1”。如果您是通过导入YAML创建工作负载,也可以在yaml中添加“Pod标签”。Pod标签的具体使用请参见设置标签与注解。
在yaml中添加“Pod标签”:
spec: replicas: 2 selector: matchLabels: app: deployment-demo version: v1 template: metadata: creationTimestamp: null labels: app: deployment-demo version: v1
方式一:通过创建负载通道开放CCE工作负载
- 创建负载通道。
- 进入API网关控制台,在左侧导航栏上方选择实例。
- 在左侧导航栏中选择“API管理 > API策略”。
- 在“负载通道”页签中单击“创建负载通道”。
- 基本信息配置。
表1 基本信息配置 参数
配置说明
通道名称
填写负载通道名称,根据规划自定义。此处填写“VPC_demo”。
端口
填写已创建工作负载的容器端口,指工作负载中pod里业务直接对外开放的接口。此处填写“80”,80端口默认为http协议端口。
分发算法
此处选择“加权轮询”。通过分发算法确定请求被发送到哪台主机。结合弹性服务器权重值,将请求轮流转发到每一台服务器。
通道类型
此处选择“微服务”。
- 微服务配置。
- 服务器分组配置。
表3 服务器分组配置 参数
配置说明
服务器分组名称
此处填写“server_group_v1”。
权重分配
此处填写“1”。
后端服务端口
此处填写“80”,与已创建工作负载中的容器端口一致。
描述
此处填写“Pod标签version值为v1的服务器分组”。
标签
此处选择已创建的工作负载中的Pod标签“version=v1”。
- 健康检查配置。
表4 健康检查配置 参数
配置说明
协议
默认为“TCP协议”。
检查端口
填写为通道中后端服务器端口。
正常阈值
默认为“2”。判定VPC通道中主机正常的依据:连续检查x成功,x为您设置的正常阈值。
异常阈值
默认为“5”。判定VPC通道中主机异常的依据为:连续检查x失败,x为您设置的异常阈值。
超时时间
默认为“5”。检查期间,无响应的时间。
间隔时间
默认为“10”。连续两次检查的间隔时间。
- 单击“完成”。
- 基本信息配置。
- 开放API。
- 创建API分组。
- 在左侧导航栏中选择“API管理 > API分组”。
- 单击“创建API分组 > 直接创建”。
- 填写API分组信息后,单击“确定”。
- 创建API并绑定已创建的负载通道。
- 单击已创建的API分组名称,进入分组详情页面,在“API运行”页签中单击“创建API > 创建API”。
- 配置前端信息后,单击“下一步”。
表5 前端配置 参数
配置说明
API名称
填写API名称。
所属分组
API所属分组,此处选择已创建的API分组。
URL
- 请求方法:接口调用方式,此处选择“ANY”。
- 请求协议:选择API请求协议,此处选择“HTTPS”。
- 子域名:API分组创建后,系统为分组自动分配一个内部测试用的调试域名,此调试域名每天最多可以访问1000次。
- 路径:接口请求路径。
网关响应
API网关未能成功处理API请求,从而产生的错误响应。默认网关响应为“default”。
匹配模式
此处选择“前缀匹配”。
安全认证
选择API认证方式,此处选择“无认证”。(无认证模式,安全级别低,所有用户均可访问,不推荐在实际业务中使用)
- 配置后端信息后,单击“下一步”。
表6 HTTP/HTTPS类型定义后端服务 参数
配置说明
负载通道
选择“使用”负载通道访问后端服务。
URL
- 请求方法:接口调用方式,此处选择“ANY”。
- 请求协议:选择协议类型,此处选择“HTTP”。
- 负载通道:填写已创建的负载通道。
- 路径:后端服务的路径。
- 定义返回结果后,单击“完成”。
- 调试API。
在“API运行”页签中,单击“调试”,进入调试页面。再次单击“调试”,响应结果中返回状态码“200”,表示调试成功,执行下一步。否则,请参考错误码章节处理。
- 发布API。
在“API运行”页签中,单击“发布最新版本”,默认选择“RELEASE”环境,单击“确定”。发布按钮左上角的感叹号消失,表示发布成功,执行下一步。否则,根据错误信息提示修改。
- 创建API分组。
- 调用API。
- 绑定独立域名。
在API分组详情页面单击“分组信息”页签。调试域名仅供开发测试使用,且每天最多访问1000次,因此用户需要绑定独立域名来访问分组内的API。
单击“绑定独立域名”,绑定已注册好的公网域名。绑定域名具体操作请参见绑定域名章节。
- 复制API的URL到浏览器进行调用。
在“API运行”页面,复制API的URL。打开浏览器,在地址栏输入API的URL进行访问。显示创建API时填写的成功响应示例,表示调用成功。
图1 复制URL示例至此,实现了通过创建负载通道的方式开放CCE工作负载。
- 绑定独立域名。
方式二:通过导入云容器引擎CCE工作负载开放CCE工作负载
- 导入CCE工作负载。
- 进入API网关控制台,在左侧导航栏上方选择实例。
- 在左侧导航栏中选择“API管理 > API分组”。
- 单击“创建API分组 > 导入CCE工作负载”。
- 填写导入CCE工作负载的信息。
- 配置生成的API信息。
表8 配置生成的API信息 参数
配置说明
请求协议
API请求协议,默认选择“HTTPS”协议。
请求路径前缀
API的请求路径的前缀匹配字符串,可按需手动填写,默认为“/”。此处填写为“/”。
端口
此处填写“80”,与已创建工作负载中的容器端口一致。
安全认证
默认为“无认证”。(无认证模式,安全级别低,所有用户均可访问,不推荐在实际业务中使用)
支持跨域CORS
默认不开启。
后端超时(ms)
填写后端超时时间默认为“5000”。
- 单击“完成”。CCE工作负载导入成功,并生成API分组、API和负载通道。
- 查看生成的API及相应负载通道。
- 查看生成的API。
- 单击已创建的API分组名称,进入“API运行”页签,可查看API的名称、请求方法、发布状态等。
- 单击“后端配置”页签,查看API绑定的负载通道。
- 查看生成的负载通道。
- 在左侧导航栏中“API管理 > API策略”。
- 在“负载通道”页签中,查看负载通道。
- 确认生成的负载通道与API所绑定的负载通道一致后,执行下一步。否则,重复1。
- 查看生成的API。
- 开放API。
通过“导入CCE工作负载”开放CCE工作负载时,已经自动创建API分组与API。因此,只需要将API发布到对应的环境中即可。
- 调试API。
在“API运行”页签中,单击“调试”,进入调试页面。再次单击“调试”,响应结果中返回状态码“200”,表示调试成功,执行下一步。否则,请参考错误码章节处理。
- 发布API。
在“API运行”页签中,单击“发布最新版本”,默认选择“RELEASE”环境,单击“确定”。发布按钮左上角的感叹号消失表示发布成功,执行下一步。
- 调试API。
- 调用API。
- 绑定独立域名。
在API分组详情页面单击“分组信息”页签。调试域名仅供开发测试时使用,且每天最多访问1000次,因此用户需要绑定独立域名来访问分组内的API。
单击“绑定独立域名”,绑定已注册好的公网域名。绑定域名具体操作请参见绑定域名章节。
- 复制API的URL到浏览器进行调用。
在“API运行”页面,复制API的URL。打开浏览器,在地址栏输入API的URL进行访问。显示创建API时填写的成功响应示例,表示调用成功。
图2 复制URL示例至此,实现了通过一键式“导入CCE工作负载”的方式来开放CCE工作负载服务的能力。
- 绑定独立域名。
(可选)配置工作负载标签实现灰度发布
灰度发布是服务发布策略之一,旨在通过调整流量分配权重,逐步将流量从旧版本引导到新版本实例上。服务发布升级过程中可以逐步验证版本是否符合预期,如果版本符合预期,则可以逐渐加大新版本实例流量占比,减小旧版本实例流量占比,直至将新版本服务权重增加到100,旧版本服务权重减少至0,完成从旧版本到新版本服务的引流。

云容器引擎CCE工作负载根据Pod标签的标签选择器配置实现灰度发布,实现原理请参见使用Service实现简单的灰度发布和蓝绿发布,帮助用户实现新功能的快速上线与验证,进而完成流量引导与服务器切换。
下文完成特性从V1版本到V2版本的切换,保证服务升级的过程中流量平稳切换,通过灰度发布逐步将流量从V1版本迁移到V2版本。
- 新建工作负载并设置“Pod标签”,且app值与已创建工作负载的app值一致。具体步骤请参考已创建的工作负载。
您可以在“高级配置 > 标签与注释”中设置“Pod标签”,此处为“app=deployment-demo”,“version=v2”。如果您是通过导入YAML创建工作负载,也可以在yaml中添加“Pod标签”。
- 调整Pod标签为“version= v1”的服务器分组的权重。
- 在API网关控制台的左侧导航栏上方选择实例。
- 在左侧导航栏中选择“API管理 > API策略”。
- 在“负载通道”页签中,单击已创建的负载通道名称。
- 在“后端服务器地址”区域,单击“编辑”。
- 将“权重分配”改为“100”,并单击“确定”。
- 创建Pod标签为“version= v2”的服务器分组并设置权重分配。
- 在“后端服务器地址”区域,单击“创建服务器分组”。
表9 服务器分组配置 参数
配置说明
服务器分组名称
此处填写为“server_group_v2”。
权重分配
此处填写为“1”。
后端服务端口
此处填写为“80”。
标签
此处选择Pod标签“version=v2”
- 单击“确定”。
- 在“后端服务器地址”区域,单击“创建服务器分组”。
- 刷新后端服务器地址。
通过刷新页面来刷新后端服务器的地址,负载通道将自动监测工作负载下的实例IP地址并动态添加到后端服务地址中。如下图所示,根据标签“app=deployment-demo”,“version=v2”能够自动匹配到已创建工作负载的实例ip,即后端服务器地址。
图4 自动匹配工作负载的实例ip此时流量权重分配到“server_group_v1”分组的比例为100/101(服务器分组权重/服务器分组权重之和),分配到“server_group_v2”分组的比例为1/101(服务器分组权重/服务器分组权重之和),将有小部分请求被引流到“server_group_v2”分组的新版本上。
图5 单击页面右上角编辑查看 - 验证新特性通过灰度发布到V2版本是否运行稳定。
您可以自行验证新版本功能是否符合预期,如果符合预期请执行6。否则,新特性发布失败。
- 逐步调整不同版本服务器分组的权重配置。
逐步减小“server_group_v1”分组的权重,增大“server_group_v2”分组的权重。重复5~6,直到“server_group_v1”分组的权重为“0”,“server_group_v2”分组的权重为“100”。
如图,表示请求转发时,分配到服务器分组“server_group_v1”的比例为0,服务器分组“server_group_v2”的比例为100%,即请求将全部转发到服务器分组“server_group_v2”上,完成从“version=v1”的工作负载“deployment-demo”到“version=v2”的工作负载“deployment-demo2”之间的切换,进而实现了新特性从V1版本到V2版本的灰度发布。(注意:请求转发的流量权重分配比例可自行设置与调整)
- 删除Pod标签为“version= v1”的服务器后端分组server_group_v1。
现已将全部流量引导到“version= v2”的服务器后端分组的后端服务地址上,因此,可将V1版本所在服务器后端分组删除。