Deployment 的回滚

本文讲述了如何在遇到Deployment部署错误,如将镜像设置错误时,通过kubectl命令操作回滚到稳定版本,包括查看部署历史、指定回滚版本和解决卡住的Pod问题。

有时我们需要将Deployment 回滚到旧版本。默认情况下,所有Deployment的发布历史记录都保留在系统中,以便我们随时进行回滚

例如我们在升级过程中将镜像名称误设置成Nginx:1.91(一个不存在的镜像)

$ kubectl set image deployment/nginx-deployment nginx=nginx:1.91

这时Deployment的部署过程会卡住:

$ kubectl rollout status deployment nginx-deployment

waiting for rollout to finish :1 out of 3 new replicas hava been updated...

查看ReplicaSet ,可以看到新建的ReplicaSet Ready  数量为0

查看创建的pod,会发现新的ReplicaSet 创建的1个Pod卡在镜像拉取过程中。

为了解决这个问题,我们需要回滚到之前稳定版本的Deployment。

首先,使用kubectl rollout history 命令检查这个Deployment部署的历史记录。

$ kubectl rollout history  deployment/nginx-deployment

显示对应的REVISION  和 CHANGE-CAUSE

如果需要查看对应的版本的详细信息,则可以加上--revision=<N>参数:

$ kubectl rollout history deployment/nginx-deployment --revision=3

我们决定撤销本次发布并回滚到上一个部署版本:

$ kubectl rollout undo deployment/nginx-deployment

也可以使用--to-revision指定回滚到部署的版本号:

$ kubectl rollout undo deployment/nginx-deployment --to-revision=2

这样deployment 就会滚到之前的稳定版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值