|NO.Z.00148|——————————|CloudNative|——|KuberNetes&资源调度.V18|——|daemonset.v03|更新|回滚|

一、daemonset更新和回滚
### --- daemonset的更新
~~~     使用RollingUpdate更新DaemonSet
~~~     daemonset滚动更新是先删除然后再创建一个新的。
~~~     默认的更新策略是RollingUpdate;多了一个update字符串,maxUnavailable:最大不可用是1,
~~~     建议滚动更新的配置是1,写的很大的话,可能影响范围就比较大,写的小的话,影响可能就不会这么大。

[root@k8s-master01 ~]# kubectl get ds -oyaml
    updateStrategy:
      rollingUpdate:
        maxUnavailable: 1
      type: RollingUpdate
### --- 查看更新后pod的状态

[root@k8s-master01 ~]# kubectl get po -owide
NAME          READY   STATUS    RESTARTS   AGE     IP              NODE           NOMINATED NODE   READINESS GATES
nginx-6dxm6   1/1     Running   0          6s      172.18.195.9    k8s-master03   <none>           <none>
nginx-pnl8k   1/1     Running   0          49s     172.27.14.195   k8s-node02     <none>           <none>
nginx-t26ct   1/1     Running   0          2m19s   172.17.125.3    k8s-node01     <none>           <none> 
二、daemonset更新过程
### --- daemonset更新过程

[root@k8s-master01 ~]# kubectl get po -l app=nginx -w
NAME          READY   STATUS    RESTARTS   AGE
nginx-n47b7   1/1     Running   0          12m
nginx-tsxcp   1/1     Running   0          13m
nginx-wfrpz   1/1     Running   0          8m36s
~~~     第一阶段:初始状态 
nginx-n47b7   1/1     Terminating   0          16m
nginx-t26ct   0/1     Pending       0          0s
nginx-t26ct   0/1     ContainerCreating   0          1s
nginx-t26ct   1/1     Running             0          35s
~~~     第二阶段:删除第一个再去更新创建第一个Pod 
nginx-tsxcp   1/1     Terminating         0          18m
nginx-pnl8k   0/1     Pending             0          0s
nginx-pnl8k   0/1     ContainerCreating   0          0s
nginx-pnl8k   1/1     Running             0          39s
~~~     第三阶段:删除第二个再去更新创建第二个Pod  
nginx-wfrpz   1/1     Terminating         0          15m
nginx-6dxm6   0/1     Pending             0          0s
nginx-6dxm6   0/1     ContainerCreating   0          0s
nginx-6dxm6   1/1     Running             0          2s 
~~~     第四阶段:删除第三个再去更新创建第三个Pod
~~~     不建议把maxUnavailable的值设置很大,一般设置为1即可。设置很大,影响会很大
~~~     且不建议使用RollingUpdate更新,而是使用OnDelete,建议使用OnDelete更新DaemonSet
三、使用OnDelete更新daemonset
### --- 使用OnDelete更新DaemonSet

[root@k8s-master01 ~]# kubectl set image ds nginx nginx=nginx:1.15.2  --record
daemonset.apps/nginx image updated
### --- 查看更新模式

[root@k8s-master01 ~]# kubectl edit ds
  updateStrategy:
    type: OnDelete
### --- 查看pod的状态

[root@k8s-master01 ~]# kubectl get po -owide
NAME          READY   STATUS    RESTARTS   AGE     IP              NODE           NOMINATED NODE   READINESS GATES
nginx-76llf   1/1     Running   0          6m34s   172.27.14.196   k8s-node02     <none>           <none>
nginx-ts5x4   1/1     Running   0          6m21s   172.18.195.10   k8s-master03   <none>           <none>
nginx-v245j   1/1     Running   0          5m34s   172.17.125.4    k8s-node01     <none>           <none>
### --- 触发更新pod

[root@k8s-master01 ~]# kubectl delete po nginx-76llf                                //删掉这一台容器,删掉完之后它就会触发更新
pod "nginx-76llf" deleted
### --- pod历史版本
~~~     部署守护进程的时候会使用到这种方式。

[root@k8s-master01 ~]# kubectl rollout history ds nginx
daemonset.apps/nginx 
REVISION  CHANGE-CAUSE
1         <none>
2         kubectl set image ds nginx nginx=nginx:1.15.3 --record=true
4         <none>  
### --- 为什么建议使用OnDelete呢?

~~~     就是在k8s集群中,肯定有很多的节点的,DaemonSet也是部署在这些节点上。
~~~     肯定有些节点是用来当做测试环境的,而我们可以从不重要的节点中测试,
~~~     测试没有问题,再去部署其它的节点。
~~~     若是这个镜像由问题的话,就只影响这一台容器。

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(34)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示