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

18.总结

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐