- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 使用前必读
- 权限管理
- 环境管理
- 应用管理
- 组件管理
- 配置管理
- 全链路流量控制
- 发布管理(公测)
- 技术栈管理
- 部署源管理
- 持续交付
- 微服务引擎
- 云审计服务支持的关键操作
- 查看监控指标及告警
- 开发指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 应用开发问题咨询指引
- 环境管理
-
应用管理
- 如何查看应用组件部署失败的原因?
- 如何解决单击应用组件外部访问地址返回504的问题?
- 如何处理虚拟机类型环境下应用创建实例失败?
- 实例长期处于创建中怎么办?
- 如何解决Docker运行node应用程序时的依赖问题?
- 如何定制Tomcat Context path?
- 如何固定应用组件IP?
- 如何处理虚拟机类型环境下创建和部署组件时遇到ECS错误?
- 如何处理虚拟机类型环境下创建和部署组件时端口访问不通的错误?
- 虚拟机类型环境下部署的应用组件支持在什么目录写文件?
- 如何处理虚拟机类型环境下部署的组件删除失败报host status is not active错误的问题?
- 如何体验ServiceStage的源码部署功能?
- 如何处理使用ServiceStage灰度发布升级组件失败?
- 如何通过挂载配置项方式修改容器部署的组件配置文件?
- 如何处理应用组件接入微服务引擎后在微服务治理下看到的应用名称和ServiceStage应用管理下的不同?
- 持续交付
- 软件中心
- 基础设施
- 应用运维
- 应用开发问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
灰度发布方式重新部署组件
根据业务需要,您可以在“部署记录”列表中选择历史版本配置,并以此版本配置为模板,使用“灰度发布”方式重新部署组件。
灰度发布简介
“灰度发布”方式先选择一定比例的实例升级到新版本,将流量引入到新版本,验证新版本功能是否正常,然后通过滚动升级剩余的实例到新版本。可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以减少其影响度。
类型 |
说明 |
---|---|
微服务灰度发布 |
适用于容器部署方式部署的微服务组件(ServiceComb/Spring Cloud),灰度发布任务作用于微服务,可通过多个微服务协作,共同完成新特性的上线。
|
ELB灰度发布 |
适用于容器部署方式部署的通过ELB作为流量入口的任何类型组件,灰度发布任务作用于ELB。
|
使用限制
通过本操作执行组件微服务灰度发布升级过程中,请勿同时通过组件绑定的ServiceComb引擎或者注册配置中心执行组件微服务灰度发布,否则会导致本操作失效。
前提条件
- 待操作组件已升级过版本配置,请参考升级单个组件版本配置或批量升级组件版本配置。
- 待操作组件为容器部署方式部署的无状态组件。如果组件技术栈是Docker,需要未开启多容器部署。
- 已回滚组件版本配置的组件版本配置,不能作为模板重新部署组件。
灰度发布方式重新部署组件
- 登录ServiceStage控制台。
- 选择以下任意方式进入组件“部署记录”页面:
- 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“部署记录”。
- 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“部署记录”。
- 在“部署记录”列表,选择待作为配置模板的历史版本部署记录。
- 单击页面右上方的“使用此版本重新部署”,弹出“重新部署”对话框。
- “部署类型”选择“灰度发布”,单击“确定”。
- 参考下表设置组件版本配置信息,其中带“*”标志的参数为必填参数。
参数
说明
技术栈
选择组件技术栈及版本。
技术栈详情,请参考技术栈简介。
*软件包/镜像
固定为创建并部署组件时选择的组件来源。
*上传方式
选择软件包或者镜像包,重新选择已上传的软件包/镜像包,上传方式请参考组件来源说明。
- 如果组件来源为软件包且需要使用例如JFrog(制品仓库)作为软件包存储仓库,您可以选择“自定义文件地址”上传方式。
- 如果选择的是镜像包:
镜像访问凭证
镜像访问凭证即密钥,用于存放拉取私有仓库镜像所需的认证信息。如果是公共仓库镜像,可以保持默认设置或者不设置镜像访问凭证。如果是私有仓库镜像,必须设置正确的镜像访问凭证,否则会导致镜像拉取失败。
- 最多支持选择16个镜像访问凭证。
- 单击“创建密钥”,可以创建新的镜像访问凭证。请参考创建密钥,“密钥类型”必须选择kubernetes.io/dockerconfigjson。
*编译命令
组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“编译命令”。
*Dockerfile地址
组件来源是“源码仓库”且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时,支持设置“Dockerfile地址”。
“Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。
如果未指定“Dockerfile地址”,默认查找项目根目录下的Dockerfile;如果项目根目录下也没有Dockerfile文件,则根据选定的运行环境自动生成Dockerfile。
*组件版本
组件版本号,支持自动生成和自定义版本号。
*容器名称
技术栈不是Docker时,需设置此参数。
长度为1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。
资源
固定为选择的历史版本配置,不可修改。
JVM参数
固定为选择的历史版本配置,不可修改。
组件技术栈类型为Java/Tomcat时,可用于配置Java代码运行时的内存参数大小。
Tomcat配置
固定为选择的历史版本配置,不可修改。
组件技术栈类型为Tomcat时,可用于配置Tomcat请求路径、端口号等参数。
容器配置
固定为选择的历史版本配置,不可修改。
应用配置
固定为选择的历史版本配置,不可修改。
高级配置
固定为选择的历史版本配置,不可修改。
*部署架构
架构选择必须匹配准确,否则会导致灰度失败,业务受损。
- 单击“选择”,根据业务实际情况选择灰度升级时实例部署架构。
- 单击“确定”。
*灰度策略
根据业务实际情况选择灰度升级策略。ELB灰度发布,仅支持“基于流量比例”
- 基于流量比例:根据需要灵活动态的调整不同服务版本的流量比例。
- 基于内容:根据请求的内容控制其流向的服务版本。
*选择流量比例
“灰度策略”选择“基于流量比例”时,根据业务实际情况设置版本流量比例。
- 灰度流量比例:引入到新版本的流量比例。
- 当前流量比例:引入到当前版本的流量比例。
*生效方式
“灰度策略”选择“基于内容”时,根据业务实际情况设置灰度策略生效方式。ELB灰度发布,仅支持“满足所有条件”。
- 满足任意条件:满足任意一条“匹配规则”时,灰度策略生效。
- 满足所有条件:满足所有“匹配规则”时,灰度策略生效。
*匹配规则
“灰度策略”选择“基于内容”时,根据业务实际情况设置灰度策略生效的匹配规则。
- 单击“添加匹配条件”。
- 设置“匹配类型”,当前仅支持基于“请求头”类型的匹配。
- 设置“参数名称”,即“匹配类型”对应的key值。
- 设置“条件类型”,即“条件值”满足的匹配规则。
- 相等:“匹配类型”对应的value值和设置的“条件值”相等。
- 匹配:“条件值”支持PERL兼容的正则表达式,仅微服务灰度发布支持。
- 枚举:多个“条件值”以逗号(,)间隔。
- 设置“条件值”,即“匹配类型”对应的value值。
*灰度实例新增模式
根据业务实际情况选择灰度升级时新增实例的模式。如需修改组件实例数量以满足灰度升级时新增实例的模式要求,请参考设置手动伸缩策略。
- 蓝绿
先增加与老版本实例同等数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后将所有流量引入新版本,再删除老版本实例。
适用于业务容量无损、回滚快、集群中需要有剩余资源的场景。
蓝绿模式需要组件实例数量在1个或以上。
- 金丝雀(先增后减)
新增指定数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后循环执行“删除固定数量的老版本实例,新增固定数量的新版本实例,同时配合流量调整”,直到所有的流量引入新版本实例,所有的老版本实例被删除。
适用于业务容量无损、回滚慢、集群中需要有剩余资源的场景。
金丝雀(先增后减)模式需要组件实例数量在2个或以上。
- 金丝雀(先减后增)
删除指定数量的老版本实例,新增指定数量的新版本实例,按照灰度规则将流量引入新版本实例。根据灰度规则验证完成后循环执行“删除固定数量的老版本实例,新增固定数量的新版本实例,同时配合流量调整”,直到所有的流量引入新版本实例,所有的老版本实例被删除。
适用于业务容量有损、回滚慢的场景。
金丝雀(先减后增)模式需要组件实例数量在2个或以上。
*首批灰度实例数量
“灰度实例新增模式”选择“金丝雀(先增后减)”、“金丝雀(先减后增)”时,需要设置首批灰度发布的实例数量。
取值范围为[1, 当前总实例数-1]。当前总实例数,即组件当前运行的实例数量。
例如,当前组件总实例数为6,“首批灰度实例数量”参数设置为1,则表示首批升级组件版本配置的实例数量为1。剩余的5个实例升级根据“剩余实例部署批次”的设置进行。
*剩余实例部署批次
“灰度实例新增模式”选择“金丝雀(先增后减)”、“金丝雀(先减后增)”时,需要设置剩余实例部署批次。即首批灰度发布成功之后,剩余实例滚动升级分多少批次完成。
例如,当前组件总实例数为6,“首批灰度实例数量”参数设置为1,且“剩余实例部署批次”设置为3。则当前剩余实例数为5,那么升级剩余实例会按照2:2:1个实例分批升级。
- 单击“升级”。
- 在组件重新部署过程中,如果发现组件配置错误等原因,您可以单击“中断”终止组件重新部署,然后单击“升级”,参考升级单个组件版本配置,重新设置组件配置并完成组件重新部署。
- 等待组件状态由“升级/回滚中”转换为“运行中”,组件重新部署成功。
- 在组件“部署记录”页面,可查看部署日志。
如果出现“查询工作负载实例状态失败”日志信息,您可以单击“查看事件”,进入事件列表查看详情。