我是靠谱客的博主 可爱水池,这篇文章主要介绍CC00202.CloudKubernetes——|KuberNetes&高级调度.V05|——|污点容忍.v03|NoSchedule静止调度容器强制驱逐|,现在分享给大家,希望可以做个参考。

一、NoSchedule静止调度,容器强制驱逐
### --- 为master01打一个污点,NoSchedule类型,静止调度;容器会被强制驱逐
~~~     为master01节点打入污点,NoExecute类型

[root@k8s-master01 ~]# kubectl taint node k8s-master01 master-test=test:NoExecute
node/k8s-master01 tainted
### --- 可以看到master01节点上的被强制迁移
~~~     在k8s-master01节点的先是Terminating状态的被删除掉
~~~     Pending状态因为我们为容器打了NoSchedule状态,它只能部署在k8s-master01节点,
~~~     所以它会显示Pending状态  

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS        RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
busybox                       1/1     Terminating   126        9d      172.25.244.211   k8s-master01   <none>           <none>
demo-nginx-6fddc76f8d-6n88v   0/2     Pending       0          10s     <none>           <none>         <none>           <none>
demo-nginx-6fddc76f8d-9cjzb   2/2     Terminating   0          7m28s   172.25.244.229   k8s-master01   <none>           <none>
demo-nginx-6fddc76f8d-jd65q   0/2     Pending       0          10s     <none>           <none>         <none>           <none>
二、删除一个污点
### --- 删除一个污点
~~~     查看k8s-master01所有的污点
~~~     注:只有它的key、value、effect都一样的,才能被认为是同一个污点
~~~     所以我们删的时候需要把key名和effect指定在上面才可以被删除掉

[root@k8s-master01 ~]# kubectl describe node k8s-master01
 Taints:             master-test=test:NoExecute
                    master-test=test:NoSchedule
### --- 删除一个污点

[root@k8s-master01 ~]# kubectl taint node k8s-master01 master-test:NoExecute-
node/k8s-master01 untainted
You have new mail in /var/spool/mail/root
### --- 查看污点;发现删除的污点已经不存在了

[root@k8s-master01 ~]# kubectl describe node k8s-master01
Taints:             master-test=test:NoSchedule
### --- 查看k8s-master01上的两个pod运行正常;不在是pending状态。

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS      RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
demo-nginx-6fddc76f8d-6n88v   2/2     Running     0          8m28s   172.25.244.231   k8s-master01   <none>           <none>
demo-nginx-6fddc76f8d-jd65q   2/2     Running     0          8m28s   172.25.244.230   k8s-master01   <none>           <none>
三、注释说明
### --- 污点类型

~~~     NoSchedule:禁止调度
~~~     NoExecute:如果不符合这个污点,会立马被驱逐
~~~     PreferNoSchedule: 尽量避免将Pod调度到指定的节点上。
~~~     node.kubernetes.io/not-ready: 节点没有准备好,Ready不为true
### --- tolerations的书写规则

      tolerations:
      - effect: NoSchedule
        key: master-test
        operator: Equal
        value: test
### --- Node节点有多个Taint,每个Taint都需要容忍才能部署上去。
~~~     注:可以容忍key:master-test,effect:NoSchedule的,不管它的value是什么都可以容忍。
~~~     注:只要匹配到了key和effect都是可以容忍,不管value是什么

      tolerations:
      - effect: NoSchedule
        key: master-test
        operator: Exists
### --- 可以容忍所有的污点
~~~     注:可以容忍所有的污点,没有写key和effect;一般是用不到的

      tolerations:
      - operator: Exists
### --- 容忍2个污点。
~~~     注:只要它的污点只要存在这个key,我都可以去容忍,这样就可以简单的容忍2个effect。 

      tolerations:
      - operator: Exists
        key: master-test

最后

以上就是可爱水池最近收集整理的关于CC00202.CloudKubernetes——|KuberNetes&高级调度.V05|——|污点容忍.v03|NoSchedule静止调度容器强制驱逐|的全部内容,更多相关CC00202内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部