k8s-pod的镜像升级与回滚
k8s-pod的镜像升级与回滚
- 一、滚动更新
- 二、版本回滚
官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/#updating-a-deployment
一、滚动更新
deploy升级过程 --》滚动升级
一个一个去升级,无服务中断
-
只修改副本数量
不会创建新的rs -
修改副本数量和镜像文件版本或者名字
会重新创建一个新的rs ,deploy名字不会改变
新的rs会去创建新的pod
[root@k8s-1 probe]# vim nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.27ports:- containerPort: 80
[root@k8s-1 probe]# kubectl apply -f nginx.yaml
deployment.apps/nginx-deployment configured
旧rs到新rs
[root@k8s-1 probe]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 1 3 5d20h
[root@k8s-1 probe]# kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deployment-6bb46d885f 1 1 0 16s
nginx-deployment-8d545c96d 3 3 3 5d20h
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-pksq5 0/1 ContainerCreating 0 73s
nginx-deployment-8d545c96d-5gb56 1/1 Running 1 (4d15h ago) 5d2h
nginx-deployment-8d545c96d-5kmtz 1/1 Running 1 (4d15h ago) 5d2h
nginx-deployment-8d545c96d-bjbmw 1/1 Running 1 (4d15h ago) 5d2h# 手动删除旧rs
[root@k8s-1 probe]# kubectl delete rs nginx-deployment-8d545c96d
replicaset.apps "nginx-deployment-8d545c96d" deleted
[root@k8s-1 probe]# kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deployment-6bb46d885f 3 3 3 3m4s
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-hfvdb 1/1 Running 0 31s
nginx-deployment-6bb46d885f-p2ckv 1/1 Running 0 63s
nginx-deployment-6bb46d885f-pksq5 1/1 Running 0 3m6s
变更镜像版本,rs也会变
[root@k8s-1 probe]# vim nginx.yaml
[root@k8s-1 probe]# kubectl apply -f nginx.yaml
deployment.apps/nginx-deployment configured
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-hfvdb 1/1 Running 0 3m5s
nginx-deployment-6bb46d885f-p2ckv 1/1 Running 0 3m37s
nginx-deployment-6bb46d885f-pksq5 1/1 Running 0 5m40s
nginx-deployment-8d545c96d-h4gmc 0/1 ContainerCreating 0 2s[root@k8s-1 probe]# kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deployment-6bb46d885f 2 2 2 5m46s
nginx-deployment-8d545c96d 2 2 1 8s
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-p2ckv 1/1 Running 0 3m45s
nginx-deployment-6bb46d885f-pksq5 1/1 Terminating 0 5m48s
nginx-deployment-8d545c96d-4znt2 1/1 Running 0 6s
nginx-deployment-8d545c96d-8zqqs 0/1 ContainerCreating 0 1s
nginx-deployment-8d545c96d-h4gmc 1/1 Running 0 10s[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-8d545c96d-4znt2 1/1 Running 0 22s
nginx-deployment-8d545c96d-8zqqs 1/1 Running 0 17s
nginx-deployment-8d545c96d-h4gmc 1/1 Running 0 26s
二、版本回滚
回滚本质是 “反向滚动升级”,也可直接修改yaml文件
[root@k8s-1 probe]# kubectl rollout history deployment
deployment.apps/nginx-deployment
REVISION CHANGE-CAUSE
2 <none>
3 <none>
[root@k8s-1 probe]# kubectl rollout undo deployment/nginx-deployment --to-revision=2
deployment.apps/nginx-deployment rolled back
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-wqgd4 0/1 ContainerCreating 0 6s
nginx-deployment-8d545c96d-4znt2 1/1 Running 0 2m57s
nginx-deployment-8d545c96d-8zqqs 1/1 Running 0 2m52s
nginx-deployment-8d545c96d-h4gmc 1/1 Running 0 3m1s[root@k8s-1 probe]# kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deployment-6bb46d885f 2 2 1 8m46s
nginx-deployment-8d545c96d 2 2 2 3m8s
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-2whgd 0/1 ContainerCreating 0 1s
nginx-deployment-6bb46d885f-c5rr4 1/1 Running 0 9s
nginx-deployment-6bb46d885f-wqgd4 1/1 Running 0 18s
nginx-deployment-8d545c96d-4znt2 1/1 Terminating 0 3m9s
nginx-deployment-8d545c96d-h4gmc 1/1 Running 0 3m13s[root@k8s-1 probe]# kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deployment-6bb46d885f 3 3 3 9m9s
nginx-deployment-8d545c96d 0 0 0 3m31s
[root@k8s-1 probe]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6bb46d885f-2whgd 1/1 Running 0 22s
nginx-deployment-6bb46d885f-c5rr4 1/1 Running 0 30s
nginx-deployment-6bb46d885f-wqgd4 1/1 Running 0 39s