美文网首页
k8s调度之 污点(Taints)和容忍度(Toleration

k8s调度之 污点(Taints)和容忍度(Toleration

作者: Rami | 来源:发表于2022-10-20 11:39 被阅读0次

1.理论详解

1.1 NodeAffinity节点亲和性,是在pod上定义的一种属性,使pod能够按照我们要求调度到某个node上。而Taints正好相反,它可以让node拒绝pod,甚至驱逐。

1.2 Taints(污点)是node上定义的一种属性,给node设置完污点后,k8s不会将pod调度到这个node上,于是k8s就给pod设置了另一种属性Tolerations(容忍),只要pod能够容忍node上的污点,那么k8s就会忽略node上的污点,就能够(不是必须)把pod调度到有污点的node上。
因此 Taints(污点)通常与Tolerations(容忍)配合使用。

2.设置污点

kubectl taint node [node] key=value[effect]
其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]
NoSchedule :一定不能被调度。
PreferNoSchedule:尽量不要调度。
NoExecute:不仅不会调度,还会驱逐Node上已有的Pod。

示例:

[root@k8s-master ~]# kubectl describe node k8s-node1 |grep Taints
Taints:             <none>
[root@k8s-master ~]# kubectl taint node k8s-node1 key=value:NoSchedule
node/k8s-node1 tainted
[root@k8s-master ~]# kubectl describe node k8s-node1 |grep Taints
Taints:             key=value:NoSchedule

3.取消污点

去除指定key及其effect:
kubectl taint nodes node_name key:[effect]- #(这里的key不用指定value)
去除指定key所有的effect:
kubectl taint nodes node_name key-

示例:

#比如先设置污点:
kubectl taint node k8s-node1 key=value:NoSchedule
kubectl  taint node k8s-node1 key=value:NoExecute

#去除指定key及其effect:
[root@k8s-master ~]# kubectl  taint node k8s-node1 key:NoExecute-
node/k8s-node1 untainted
[root@k8s-master ~]# kubectl  taint node k8s-node1 key:NoSchedule-
node/k8s-node1 untainted

#去除指定key所有的effect: 
[root@k8s-master ~]# kubectl  taint node k8s-node1 key-
node/k8s-node1 untainted

4.示例

给k8s-node1 设置一个污点,该Taint(污点)的键为dev,值为yundi,Taint的效果是NoSchedule。这意味着pod明确声明可以容忍这个taint(污点),否则就不会调度到这个node上。

kubectl taint node k8s-node1 dev=yundi:NoSchedule

然后需要在pod上声明Tolerations(容忍度),下面的Tolerations表示可以容忍具有该taint的node,使pod能够调度到有该污点的node上。

apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  tolerations:
  - key: "dev"
    operator: "Equal"
    value: "yundi"
    effect: "NoSchedule"
  containers:
    - name: test
      image: busybox:latest

也可以写成这种

tolerations:
- key: "dev"
  operator: "Exists"
  effect: "NoSchedule"

相关文章

网友评论

      本文标题:k8s调度之 污点(Taints)和容忍度(Toleration

      本文链接:https://www.haomeiwen.com/subject/ilcuzrtx.html