|NO.Z.00201|——————————|CloudNative|——|KuberNetes&高级调度.V04|——|污点容忍.v02|NoSchedule不会被调度但不强制|

一、Taint&Toleration:NoSchedule不会被调度,但不强制
### --- 为master01打一个污点,NoSchedule类型,不会被调度,但不强制迁移
~~~     查看Pod部署在那些节点上

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS      RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
busybox                       1/1     Running     126        9d      172.25.244.211   k8s-master01   <none>           <none>
demo-nginx-67ff7f7bb5-984xl   2/2     Running     0          3h35m   172.25.244.227   k8s-master01   <none>           <none>
demo-nginx-67ff7f7bb5-sz9nv   2/2     Running     0          3h35m   172.18.195.32    k8s-master03   <none>           <none>
hello-1619696760-vbpgl        0/1     Completed   0          4m39s   172.27.14.238    k8s-node02     <none>           <none>
hello-1619696880-scmq6        0/1     Completed   0          2m46s   172.27.14.239    k8s-node02     <none>           <none>
hello-1619697000-tqzlj        0/1     Completed   0          44s     172.27.14.240    k8s-node02     <none>           <none>
### --- 给master01节点打一个污点;采用NoSchedule类型,
~~~     只是让这个节点不被调度,但是不会被强制迁移。
~~~     注:这个NoSchedule类型的是不会强制迁移Pod的

[root@k8s-master01 ~]# kubectl taint node k8s-master01 master-test=test:NoSchedule
node/k8s-master01 tainted
二、NoSchedule污点验证
### --- 污点验证:为master01节点打污点,让master01节点不被调用
~~~     查看master01上有什么label
~~~     注:所有的节点都是由这个标签的kubernetes.io/hostname

[root@k8s-master01 ~]# kubectl get node --show-labels
NAME           STATUS   ROLES    AGE   VERSION   LABELS
k8s-master01   Ready    <none>   19d   v1.20.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master01,kubernetes.io/os=linux,node.kubernetes.io/node=
~~~     # 可以看到这两个容器显示Pending状态,
~~~     因为它不符合我们之前打的那个污点NoSchedule,不会被调度

[root@k8s-master01 ~]# kubectl edit deploy demo-nginx
      restartPolicy: Always                 // 此配置下加入如下参数
      nodeSelector:                         // 约束不让部署在master01节点
        kubernetes.io/hostname: k8s-master01
[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS        RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
demo-nginx-7f784c74d8-h2788   0/2     Pending       0          4s      <none>           <none>         <none>           <none>
demo-nginx-7f784c74d8-tnzdq   0/2     Pending       0          5s      <none>           <none>         <none>           <none>
### --- 容忍验证:为master01节点配置容忍,让匹配条件的可以部署在master01节点。
~~~     为其加入容忍查看结果,会被容忍;可以被部署在master01上面
~~~     注:这个配置就是告诉deployment,我可以容忍这个污点,
~~~     这个污点的key是master-test,value:是test,影响是NoSchedule:
~~~     注:符合这个条件的可以去匹配,可以部署在这个节点上面

[root@k8s-master01 ~]# kubectl edit deploy demo-nginx
      nodeSelector:
        kubernetes.io/hostname: k8s-master01// 污点添加的参数
      restartPolicy: Always                 // 下列添加如下参数
      tolerations:                          // 容忍参数
      - key: "master-test"                  
        value: "test" 
        effect: "NoSchedule"
        operator: "Equal"
### --- 验证是否可以部署在master01节点
~~~     注:可以看到它部署在master01节点上面了

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS              RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
demo-nginx-6fddc76f8d-9cjzb   0/2     ContainerCreating   0          13s     <none>           k8s-master01   <none>           <none>
demo-nginx-6fddc76f8d-qz8sh   0/2     ContainerCreating   0          13s     <none>           k8s-master01   <none>           <none>

 
 
 
 
 
 
 
 
 

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  阅读(18)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 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 29
30 31 1 2 3 4 5

导航

统计

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