先看一下,当前笔者这里的k8s环境,主要是 deployment,rs ,pods 相关的信息
[root@k8s-master qq-5201351]# kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE nginx-deploy 3/3 3 3 24h [root@k8s-master qq-5201351]# [root@k8s-master qq-5201351]# kubectl get rs NAME DESIRED CURRENT READY AGE nginx-deploy-754898b577 3 3 3 24h nginx-deploy-78d8bf4fd7 0 0 0 24h [root@k8s-master qq-5201351]# [root@k8s-master qq-5201351]# kubectl get po NAME READY STATUS RESTARTS AGE nginx-deploy-754898b577-dpbc2 1/1 Running 1 (24h ago) 24h nginx-deploy-754898b577-mzhvg 1/1 Running 1 (24h ago) 24h nginx-deploy-754898b577-pf7gp 1/1 Running 1 (24h ago) 24h
此时已经有2个rs版本信息了,接入来,我们制造环境,再增加一个rs版本,依然使用最简单的修改镜像的版本,并进行历史版本的查看
[root@k8s-master ~]# kubectl set image deployment/nginx-deploy nginx=nginx:1.9.12 --record=true Flag --record has been deprecated, --record will be removed in the future deployment.apps/nginx-deploy image updated [root@k8s-master ~]# kubectl rollout history deployment/nginx-deploy deployment.apps/nginx-deploy REVISION CHANGE-CAUSE 2 <none> 3 <none> 4 kubectl set image deployment/nginx-deploy nginx=nginx:1.9.12 --record=true
我们再次观察 ,deployment,rs ,pods 相关的信息,发现变化的主要就是rs和pod
[root@k8s-master ~]# kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE nginx-deploy 3/3 3 3 25h [root@k8s-master ~]# kubectl get rs NAME DESIRED CURRENT READY AGE nginx-deploy-754898b577 0 0 0 25h nginx-deploy-78d8bf4fd7 0 0 0 25h nginx-deploy-8d945596c 3 3 3 3m28s [root@k8s-master ~]# kubectl get po NAME READY STATUS RESTARTS AGE nginx-deploy-8d945596c-48bnj 1/1 Running 0 5m25s nginx-deploy-8d945596c-fnthg 1/1 Running 0 6m50s nginx-deploy-8d945596c-lqvqf 1/1 Running 0 8m23s
此时,如果要回滚到上一个版本(REVISION,数字越大,代表的版本越新):
也可以先,查看变更的段,只会显示变改的块相关的内容
[root@k8s-master ~]# kubectl rollout history deployment/nginx-deploy --revision 2 deployment.apps/nginx-deploy with revision #2 Pod Template: Labels: app=nginx-deploy pod-template-hash=754898b577 Containers: nginx: Image: nginx:1.9.1 Port: <none> Host Port: <none> Environment: <none> Mounts: <none> Volumes: <none> [root@k8s-master ~]#
现在开始回滚到上一个版本:即nginx:1.9.1
kubectl rollout undo deployment/nginx-deploy --to-revision=2
执行后,我们可以再观察一下 deployment, rs , pods 相关的信息
[root@k8s-master ~]# kubectl rollout undo deployment/nginx-deploy --to-revision=2 deployment.apps/nginx-deploy rolled back [root@k8s-master ~]# kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx-deploy 3/3 3 3 25h [root@k8s-master ~]# kubectl get rs NAME DESIRED CURRENT READY AGE nginx-deploy-754898b577 3 3 3 25h nginx-deploy-78d8bf4fd7 0 0 0 25h nginx-deploy-8d945596c 0 0 0 13m [root@k8s-master ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deploy-754898b577-d6kmr 1/1 Running 0 22s nginx-deploy-754898b577-qd25d 1/1 Running 0 23s nginx-deploy-754898b577-sk9pc 1/1 Running 0 21s
我们还可以通过 kubectl get deployments -o yaml 看出回退的效果,看看当前的nginx镜像的版本是不是之前的版本
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17718539.html
标签:kubectl,回滚,Kubernetes,deploy,nginx,v1.23,master,k8s,root From: https://www.cnblogs.com/5201351/p/17718539.html