2018云栖Workshop应用发布实践手册(一)

本文主要用于演示如何在阿里云容器服务Kubernetes集群中部署一个应用,并将该应用通过Ingress对外暴露提供服务访问,以及如何通过分批发布和灰度发布来更新升级应用版本。

部署应用

1、创建一个分批发布的应用
2018云栖Workshop应用发布实践手册(一)

2、设置应用名称,这里取名为product-page
2018云栖Workshop应用发布实践手册(一)

3、填写应用基本信息
镜像:registry.cn-hangzhou.aliyuncs.com/acs-sample/productpage:v1
2018云栖Workshop应用发布实践手册(一)

4、点击更新后,返回发布列表
这里我们看到已经成功部署了一个分批发布的应用
2018云栖Workshop应用发布实践手册(一)

5、查看应用详情
这里可以看到4个Pod已经成功运行中
2018云栖Workshop应用发布实践手册(一)

暴露服务

这里我们需要将product-page应用能够对外提供访问

1、创建一个路由(Ingress)
2018云栖Workshop应用发布实践手册(一)

2、填写路由基本信息
这里我们填写域名前缀为product
2018云栖Workshop应用发布实践手册(一)

3、查看路由列表
这里可以看到该应用的完整访问域名
2018云栖Workshop应用发布实践手册(一)

4、通过域名访问应用/productpage页面
2018云栖Workshop应用发布实践手册(一)

分批发布

这里我们通过分批发布的方式来更新应用到新版本v2

1、通过分批发布来更新应用
2018云栖Workshop应用发布实践手册(一)

2、设置应用版本为v2
2018云栖Workshop应用发布实践手册(一)

3、当前我们看到正处于第1批次的更新中
2018云栖Workshop应用发布实践手册(一)

4、进入详情页面
稍等片刻后,我们在“未开始”列表可以看到有两个Pod依然是老的版本,在“已完成”列表中已有两个Pod更新为新的版本
2018云栖Workshop应用发布实践手册(一)
2018云栖Workshop应用发布实践手册(一)

5、此时再访问应用域名,我们可以看到请求已转发到新版本的应用中
2018云栖Workshop应用发布实践手册(一)

6、假若发现新版本有问题,我们可以快速回滚应用到老版本
2018云栖Workshop应用发布实践手册(一)

7、待回滚完成后,我们可以看到4个Pod都处于v1版本中
2018云栖Workshop应用发布实践手册(一)

8、此时我们再次访问应用域名,看到请求都回到了老版本应用中
2018云栖Workshop应用发布实践手册(一)

9、若第一批发布后的新版本应用确认没问题后,则可以继续发布第二批,直到最终发布完成

灰度发布

这里我们通过灰度发布的方式来更新应用到新版本v2

1、部署新版本应用v2
2018云栖Workshop应用发布实践手册(一)

2、设置新版本应用基本信息
这里取名为product-page-v2,同样设置副本数量为4
2018云栖Workshop应用发布实践手册(一)

3、使用新版本镜像v2
新版本镜像:registry.cn-hangzhou.aliyuncs.com/acs-sample/productpage:v2
2018云栖Workshop应用发布实践手册(一)

4、创建新版本对应的服务
2018云栖Workshop应用发布实践手册(一)

5、点击创建后,我们看到新版本应用部署完成
2018云栖Workshop应用发布实践手册(一)

6、我们更新路由配置来设置引流规则
2018云栖Workshop应用发布实践手册(一)

7、这里我们设置将请求参数中带有v=2的请求转发到新版本服务中
2018云栖Workshop应用发布实践手册(一)

8、此时访问应用域名
1)添加请求参数v=2时
2018云栖Workshop应用发布实践手册(一)
2)不添加请求参数v=2时
2018云栖Workshop应用发布实践手册(一)

参考文章

分批发布:https://yq.aliyun.com/articles/622898
灰度发布:https://yq.aliyun.com/articles/594019

上一篇:通过阿里云容器服务K8S Ingress Controller实现应用服务的灰度发布


下一篇:K8S Ingress Controller 健康检查原理剖析