标签:val http lang 匹配 作用 限制 项目 bash board
Taint(污点)和 Toleration(容忍)可以作用于 node 和 pod 上,其目的是优化 pod 在集群间的调度,这跟节点亲和性类似,只不过它们作用的方式相反,具有 taint 的 node 和 pod 是互斥关系,而具有节点亲和性关系的 node 和 pod 是相吸的。另外还有可以给 node 节点设置 label,通过给 pod 设置 nodeSelector
将 pod 调度到具有匹配标签的节点上。
Taint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个 taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接受的。如果将 toleration 应用于 pod 上,则表示这些 pod 可以(但不要求)被调度到具有相应 taint 的节点上。
Taints包含一个key、value和effect。
格式
<key>=<value>:<effect>Copy to clipboardErrorCopied
为Node设置taint
[root@kubernetes-master-01 ~]# kubectl taint node kubernetes-master-01 key=value:NoSchedule
node/kubernetes-master-01 taintedCopy to clipboardErrorCopied
执行这个命令后,除非Pod具有相应的toleration,否则不会被调度到kubernetes-master-01
上。
删除taint
[root@kubernetes-master-01 ~]# kubectl taint node kubernetes-master-01 key:NoSchedule-
node/kubernetes-master-01 untaintedCopy to clipboardErrorCopied
taint支持的effect
在Pod中指定Toleartions
kind: Deployment
apiVersion: apps/v1
metadata:
name: mytaint
spec:
selector:
matchLabels:
app: mytaint
template:
metadata:
labels:
app: mytaint
spec:
containers:
- name: nginx
image: nginx
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoSchedule"Copy to clipboardErrorCopied
当key为空operator为Exists,这种情况将匹配所有的keys、values和effects,即对所有的瑕疵都无法忍受;当effect为空,匹配所有key的瑕疵。
可以向单个Pod和Node增加多个tolerations和taints,Kubernetes采用类似过滤器的方式进行处理,首先遍历Node上的Taints,并与Pod的tolerations做匹配,如果有匹配的项目则忽略,最后根据剩下为匹配到的taints做判断:
tolerationSeconds
设置延时驱逐。标签:val http lang 匹配 作用 限制 项目 bash board
原文地址:https://www.cnblogs.com/tcy1/p/13832503.html