Deployment回滚(二)

2023-04-29 11:00:12 浏览数 (1)

回滚到之前的版本

如果我们想要回滚到之前的某个版本,我们可以使用以下命令查看Deployment的更新历史记录:

代码语言:javascript复制
kubectl rollout history deployment/nginx-deployment

这将输出类似于以下内容的信息:

代码语言:javascript复制
deployment.apps/nginx-deployment 
REVISION  CHANGE-CAUSE
1         kubectl create -f nginx-deployment.yaml --record=true
2         kubectl set image deployment/nginx-deployment nginx=nginx:1.17 --record=true
3         kubectl set image deployment/nginx-deployment nginx=nginx:1.16 --record=true

我们可以看到Deployment共进行了3次滚动更新,我们可以回滚到任意一个版本。假设我们想要回滚到步骤3:回滚Deployment

如果新版本出现问题,您需要快速回滚Deployment。Deployment提供了回滚机制,可以使您快速回到先前的稳定版本。回滚Deployment会自动启动Rollback操作,它会撤消Deployment中的所有更改,并将其回滚到先前的版本。回滚将不断重试,直到所有Pod都达到先前的版本。

在我们的示例中,我们将回滚Deployment以将它恢复到早期版本。

检查Deployment状态:

代码语言:javascript复制
$ kubectl rollout status deployment hello-deployment

回滚Deployment:

代码语言:javascript复制
$ kubectl rollout undo deployment hello-deployment

检查回滚状态:

代码语言:javascript复制
$ kubectl rollout status deployment hello-deployment

输出:

代码语言:javascript复制
Waiting for deployment "hello-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "hello-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "hello-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "hello-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
deployment "hello-deployment" successfully rolled out

您可以看到回滚Deployment后,状态已恢复到早期版本。

0 人点赞