对于部署在K8s集群中的Spring Cloud或Dubbo微服务应用,为确保升级操作的安全性,可使用金丝雀发布(即灰度发布)进行小规模验证,验证通过后再全量升级。本文介绍如何使用EDAS控制台进行金丝雀发布K8s应用。
HSF应用:不支持金丝雀发布。
Dubbo应用:无使用限制。
入口类型应用:如果当前应用为入口类型应用,流量从SLB直接转发到当前应用,那么SLB流量转发策略不会遵循此金丝雀发布策略。
若您想体验金丝雀灰度发布,可以使用示例Demo:先创建一个客户端应用,再创建多副本的服务端应用,对服务端应用进行灰度发布,并为客户端应用绑定SLB,通过SLB访问服务。
在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间。
在应用列表页面的集群类型下拉列表,选择K8s集群,然后单击目标应用名称。
在应用总览页面右上角,选择部署 > 部署,在选择部署模式页面,单击金丝雀发布(灰度)区域右上角的开始部署。
在金丝雀发布(灰度)页面设置新版本应用的部署参数、发布策略和灰度规则,然后单击确定。
设置部署参数。
配置项
描述
适用场景
应用运行环境
与上一次部署保持一致。
JAR包部署:应用运行环境为标准Java应用运行环境,不可更改。
WAR包部署:应用运行环境为Apache Tomcat,类型不可更改。如果需要,可以更换版本。
适用于JAR包和WAR包部署的应用
Java环境
根据需求在下拉列表选择对应的JDK版本。
适用于JAR包和WAR包部署的应用
文件上传方式
与上一次的部署包类型(WAR包或JAR包)保持一致,不可更改。
上传方式可以根据实际需求选择上传部署包或输入部署包地址两种方式。
上传JAR包/上传WAR包:选择下载好的JAR包/WAR包并上传。
JAR包地址/WAR包地址:输入Demo包地址。
适用于JAR包和WAR包部署的应用
构建仓库类型
构建仓库类型功能仅支持容器服务K8s集群下的Java、 Tomcat、EDAS-container(HSF)三种应用类型。暂不支持ACK Serverless集群。
使用ACR个人版或ACR企业版储存构建后的镜像时,构建任务会运行在集群中。构建任务拥有以下调度亲和性以及调度容忍策略。
仅适用于镜像部署的应用
ACR所属地域
选择您的容器镜像所在的地域。该参数仅在构建仓库类型选择ACR企业版时需要配置。
容器镜像服务
选择您的容器镜像服务。该参数仅在构建仓库类型选择ACR企业版时需要配置。
镜像仓库命名空间
在下拉列表中选择您的镜像仓库所在的微服务空间,也可以单击单侧的+创建命名空间创建新的微服务空间。
版本
适用于JAR包和WAR包部署的应用
时区
根据实际需求在列表中选择。
适用于JAR包和WAR包部署的应用
单Pod资源配额
设置单个Pod的CPU、内存和临时存储。如果您需要限额,请填写具体的数字,使用默认值0代表不限额。没有配额限制,上限取决于集群性能。
都适用
在发布策略区域配置发布策略参数。
配置西
描述
首批灰度数量
首批发布的应用实例数量。右侧会显示应用当前实例数,为保证应用稳定性,灰度实例数不能超过应用实例总数的50%。
灰度分组发布后,必须手动开始剩余分批发布。
剩余批次
首批灰度发布后,剩余的应用实例按照该处设置的批次完成分批发布。
分批间处理方式
仅当剩余批次大于1时,需配置分批间处理方式。
支持以下处理方式:
自动:根据间隔自动分配分批发布。间隔为剩余批次间的发布时间间隔,单位:分钟。
手动:手动触发下一个批次的发布。
批次内部署间隔
每一批次内,如果应用实例数大于1,应用实例按该时间间隔部署,单位:秒。
右侧发布策略配置信息区域根据配置显示金丝雀发布流程。
设置灰度规则。
EDAS支持的灰度规则包括按内容灰度和按比例灰度。
灰度规则
配置项
说明
按内容灰度
单击添加策略,在添加内容灰度策略面板配置策略名称及流量规则后,单击确定。
在选择策略下拉列表选择创建的内容灰度策略。
单击创建流量规则,可创建多个入口流量规则,多个规则可同时生效。
策略名称
自定义内容灰度策略名称。
协议类型
Spring Cloud
path:HTTP相对路径。
Dubbo
选择服务:在下拉列表选择已创建的服务。
方法:在下拉列表选择服务的方法。
条件模式
选择同时满足下列条件或满足下列任一条件。
条件列表
Spring Cloud:根据Cookie、Header或Parameter类型设置具体的参数。
Dubbo:根据应用实际的参数、参数值获取表达式设置。
按比例灰度
流量比例
流量按配置的比例被转发到当前的灰度分组。
按泳道灰度
单击添加策略,在添加泳道灰度策略面板配置策略名称及流量规则后,单击确定。
在选择策略下拉列表选择创建的泳道灰度策略。
策略名称
自定义泳道灰度策略名称。
泳道组
泳道
(可选)配置应用高级设置。
金丝雀发布启动后,EDAS将先在指定的灰度分组中部署新版本应用。您可在变更记录页面查看部署进度和状态。
灰度流量验证完成后,在变更记录页面右侧,单击开始下一批,完成后续分批发布。
如果在验证过程中发现新版本应用有问题,可在变更记录页面右上角,单击立即回滚,在弹出的确认对话框,单击确定。
金丝雀发布完成后,在应用总览页面的部署规格区域中,查看部署包是否为新部署的应用版本。
关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务