文章目录
- 1.何谓滚动发布Rolling Update
- 2.蓝绿 vs 滚动发布
- 3.K8s发布抽象Deployment
- 4.Deployment滚动发布
- 5.Deployment发布规范样例
- 6.PetClinic的Deployment发布规范
- 7.PetClinic的Service发布规范
- 8.发布PetClinic Deployment和Service
- 9.校验PetClinic应用V1.0.0
- 10.更新PetClinic的Deployment发布规范
- 11.滚动发布PetClinic V1.0.1
- 12.滚动发布结束
- 13.查看发布历史
- 14.校验PetClinic应用V1.0.1
- 15.回滚发布
- 16.校验PetClinic应用回退到V1.0.0
- 17.指定回退版本
- 18.总结
1.何谓滚动发布Rolling Update
一种高级发布策略,按批次依次替换老版本,逐步升级到新版本。发布过程中,应用不中断,用户体验平滑。
2.蓝绿 vs 滚动发布
3.K8s发布抽象Deployment
Deployment可以理解为是一种滚动发布方式,它是在ReplicaSet基础上进行了一次包装
4.Deployment滚动发布
假设ReplicaSet v1.0.0对应的3个pod已经发布,然后通过Deployment进行滚动发布,升级至v1.0.1,这个过程中等到蓝色部分的pod逐步上线之后,对应的绿色pod会慢慢消失,当然Deployment始终会保证有Pod在运行,服务不中断,另外前置的Service抽象会屏蔽掉内部Pod具体的变化,让Client端对整个发布无感知,如果蓝色Pod有问题,健康检查不通过,这时Deployment会终止本次更新,Deployment抽象的引入,把滚动发布机制给封装与自动化了
5.Deployment发布规范样例
官方地址:https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
6.PetClinic的Deployment发布规范
7.PetClinic的Service发布规范
8.发布PetClinic Deployment和Service
[root@k8s7-22.host.com ~]# kubectl apply -f http://k8s-yaml.od.com/k8s-msa-in-action/ch05/07/petclinic-dp.yaml
deployment.apps/petclinic created
[root@k8s7-22.host.com ~]# kubectl apply -f http://k8s-yaml.od.com/k8s-msa-in-action/ch05/07/petclinic-svc.yaml
service/petclinic created
9.校验PetClinic应用V1.0.0
10.更新PetClinic的Deployment发布规范
11.滚动发布PetClinic V1.0.1
[root@k8s7-22.host.com ~]# kubectl apply -f http://k8s-yaml.od.com/k8s-msa-in-action/ch05/07/petclinic-dp.yaml
deployment.apps/petclinic configured
12.滚动发布结束
13.查看发布历史
14.校验PetClinic应用V1.0.1
15.回滚发布
16.校验PetClinic应用回退到V1.0.0
17.指定回退版本
浏览器访问验证是否已更新至v1.0.1