K8S学习笔记|06-服务更新与回滚

Kubernetes

Posted by Claire on September 1, 2023

滚动更新

主要通过修改yaml文件中镜像版本,通过kubectl apply使配置生效

会新建一个ReplicaSet,在新的ReplicaSet中新增一个Pod,Pod启动成功后,在老的ReplicaSet里面减少一个Pod,逐渐交替,直至新的ReplicaSet中有预期的副本数,老的ReplicaSet中副本数为0。此外更替的并发数也可以根据maxSurge和maxUnavailable来精确控制替换的频率

版本回滚

以上已经将镜像版本进行升级,但是如果镜像中存在重大的bug影响,那么就需要将生产版本回滚,重新排查和测试新版本代码

可以直接在yaml文件中,镜像版本改回去,重新更新的方式来将应用发布回老版本 但是在K8S的流程中就支持版本的回退,回退至之前某一个版本

在版本更新时对项目的发布打版本: kubectl apply -f test.yaml --record 查看记录的版本: kubectl rollout history deployment testimage 回滚至某一个版本: kubectl rollout undo deployment testimage --to-revision=1