本文主要用于演示如何在阿里云容器服务Kubernetes集群中部署一个应用,并将该应用通过Ingress对外暴露提供服务访问,以及如何通过分批发布和灰度发布来更新升级应用版本。
部署应用
1、创建一个分批发布的应用
2、设置应用名称,这里取名为product-page
3、填写应用基本信息
镜像:registry.cn-hangzhou.aliyuncs.com/acs-sample/productpage:v1
4、点击更新后,返回发布列表
这里我们看到已经成功部署了一个分批发布的应用
5、查看应用详情
这里可以看到4个Pod已经成功运行中
暴露服务
这里我们需要将product-page应用能够对外提供访问
1、创建一个路由(Ingress)
2、填写路由基本信息
这里我们填写域名前缀为product
3、查看路由列表
这里可以看到该应用的完整访问域名
4、通过域名访问应用/productpage页面
分批发布
这里我们通过分批发布的方式来更新应用到新版本v2
1、通过分批发布来更新应用
2、设置应用版本为v2
3、当前我们看到正处于第1批次的更新中
4、进入详情页面
稍等片刻后,我们在“未开始”列表可以看到有两个Pod依然是老的版本,在“已完成”列表中已有两个Pod更新为新的版本
5、此时再访问应用域名,我们可以看到请求已转发到新版本的应用中
6、假若发现新版本有问题,我们可以快速回滚应用到老版本
7、待回滚完成后,我们可以看到4个Pod都处于v1版本中
8、此时我们再次访问应用域名,看到请求都回到了老版本应用中
9、若第一批发布后的新版本应用确认没问题后,则可以继续发布第二批,直到最终发布完成
灰度发布
这里我们通过灰度发布的方式来更新应用到新版本v2
1、部署新版本应用v2
2、设置新版本应用基本信息
这里取名为product-page-v2,同样设置副本数量为4
3、使用新版本镜像v2
新版本镜像:registry.cn-hangzhou.aliyuncs.com/acs-sample/productpage:v2
4、创建新版本对应的服务
5、点击创建后,我们看到新版本应用部署完成
6、我们更新路由配置来设置引流规则
7、这里我们设置将请求参数中带有v=2的请求转发到新版本服务中
8、此时访问应用域名
1)添加请求参数v=2时
2)不添加请求参数v=2时
参考文章
分批发布:https://yq.aliyun.com/articles/622898
灰度发布:https://yq.aliyun.com/articles/594019