还是先创建一个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
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!