5.4 执行回滚操作

  回滚命令

kubectl rollout 

 

查看历史记录  

kubectl rollout history deployment hello-deploy

[root@master k8s]# kubectl rollout history deployment hello-deploy
deployment.apps/hello-deploy 
REVISION  CHANGE-CAUSE
1         <none>
2         kubectl apply --filename=deploy.yml --record=true

1 为tag为latest的镜像的deployment。版本2为刚刚滚动升级之后的版本。kubectl apply -f deploy.yml --record由于刚刚升级时使用了--record参数的缘故,执行更新操作的命令会被记录下来。

  查看ReplicaSet

kubectl get rs

可以查看到已经创建了新的ReplicaSet,并且之前的不会被删除。

[root@master k8s]# kubectl get rs
NAME                      DESIRED   CURRENT   READY   AGE
hello-deploy-69c89b6f98   10        10        10      28m
hello-deploy-8d494c7f6    0         0         0       3h26m

 回滚之前历史版本

  示例:

kubectl rollout undo deployment hello-deploy --to-revision=1

复制代码
[root@master k8s]# kubectl rollout undo deployment hello-deploy --to-revision=1
deployment.apps/hello-deploy rolled back
[root@master k8s]# kubectl get pods
NAME                            READY   STATUS              RESTARTS   AGE
hello-deploy-69c89b6f98-2rgx2   1/1     Running             0          31m
hello-deploy-69c89b6f98-7rwxp   1/1     Running             0          38m
hello-deploy-69c89b6f98-8mp6l   1/1     Running             0          30m
hello-deploy-69c89b6f98-9qs4z   1/1     Running             0          34m
hello-deploy-69c89b6f98-dxzvx   1/1     Running             0          32m
hello-deploy-69c89b6f98-f2sxw   1/1     Running             0          29m
hello-deploy-69c89b6f98-mr7cs   1/1     Running             0          28m
hello-deploy-69c89b6f98-n9sht   1/1     Running             0          33m
hello-deploy-69c89b6f98-swptb   1/1     Terminating         0          29m
hello-deploy-69c89b6f98-thzw5   1/1     Running             0          38m
hello-deploy-8d494c7f6-mpj82    0/1     ContainerCreating   0          7s
hello-deploy-8d494c7f6-tdq4w    0/1     ContainerCreating   0          8s
[root@master k8s]# kubectl get deploy hello-deploy
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
hello-deploy   11/10   2            9           3h37m
[root@master k8s]# kubectl get deploy hello-deploy
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
hello-deploy   9/10    6            9           3h39m
[root@master k8s]# kubectl get deploy hello-deploy
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
hello-deploy   9/10    6            9           3h39m
复制代码

通过上面操作可以看到正在回滚更新

访问浏览器可以看到已经发生变化

※ 最后要注意,刚刚执行的回滚操作时一个命令式的指令。也就是说集群的当前状态和YAML文件是不符的。在实际操作中,执行这样的回滚操作之后,应当手动更新YAML文件,以便正确反映回滚操作带来的变化。

posted @   ~技术小白  阅读(12)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示