博客园  :: 首页  :: 管理

关于Kubernetes-v1.23.6-资源调度-Deployment-滚动更新

Posted on 2023-09-19 20:15  520_1351  阅读(9)  评论(0编辑  收藏  举报

还是先创建一个deployment, 可以按如下的方式创建一个 nginx 的deployment

[root@k8s-master qq-5201351]# kubectl create deploy nginx-deploy --image=nginx:1.7.9
deployment.apps/nginx-deploy created

只有修改了当前运行用到的deployment配置中的template中的属性后,才会触发更新操作

如下,我们只更新deployment的标签,可以看出来

[root@k8s-master ~]# kubectl get deployment --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 1/1 1 1 117s app=nginx-deploy

接下来,编辑修改deployment,如添加一个标签如test:'123'

使用 kubectl edit deploy nginx-deploy 可以在app同级处添加

然后再查看可以看出,多了标签

[root@k8s-master ~]# kubectl get deployment --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 1/1 1 1 4m23s app=nginx-deploy,test=123

但是我们使用 kubectl describe deployment 看到 Events: 事件,并没有发生滚动更新操作

修改副本数为3,差不多两分钟左右可以看到变成了3,也可以通过kubectl describe deployment看到相关的信息

[root@k8s-master ~]# kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 2/3 3 2 126m app=nginx-deploy,test=123
[root@k8s-master ~]# kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 2/3 3 2 128m app=nginx-deploy,test=123
[root@k8s-master ~]# kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 3/3 3 3 128m app=nginx-deploy,test=123
[root@k8s-master ~]# kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 3/3 3 3 128m app=nginx-deploy,test=123

观察deploy, rs , pod 的数量变化

[root@k8s-master ~]# kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx-deploy 3/3 3 3 132m app=nginx-deploy,test=123
[root@k8s-master ~]# kubectl get rs --show-labels
NAME DESIRED CURRENT READY AGE LABELS
nginx-deploy-78d8bf4fd7 3 3 3 132m app=nginx-deploy,pod-template-hash=78d8bf4fd7
[root@k8s-master ~]# kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
nginx-deploy-78d8bf4fd7-9ccdl 1/1 Running 0 6m10s app=nginx-deploy,pod-template-hash=78d8bf4fd7
nginx-deploy-78d8bf4fd7-cc6vj 1/1 Running 0 132m app=nginx-deploy,pod-template-hash=78d8bf4fd7
nginx-deploy-78d8bf4fd7-tjzb4 1/1 Running 0 6m10s app=nginx-deploy,pod-template-hash=78d8bf4fd7
[root@k8s-master ~]#

先更改成3个,这样也才方便后面更好地看到滚动更新的效果

修改deployment中的nginx镜像的版本为1.9.1

然后可以再通过 kubectl rollout status deploy nginx-deploy 看到是否完成了滚动更新

也可以通过命令的方式修改deployment
kubectl set image deployment/nginx-deploy nginx=nginx:1.7.9

另一个窗口,再执行 kubectl rollout status deploy nginx-deploy 进行观察

也可以通过 kubectl describe deployment nginx-deploy 看到详细的滚动更新的过程

kubectl get deploy --show-labels 的字段说明

UP-TO-DATE 当前更新了几个

AVAILABLE 当前可用的有几个

可以通过如下的命令看到所有的RS

kubectl get rs --show-labels

滚动更新并行的概念:一个更新还没有完全完成,另一个更新也开始了,那么会停止前面的更新

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17715701.html