污点(Taints):
污点是一种节点属性,表示节点上的一些特性,比如硬件约束、软件约束等。节点上的污点可以阻止不具备相应容忍度的 Pod 被调度到该节点上。节点上的每个污点都有一个键值对,例如:
key1=value1:NoSchedule
key2=value2:PreferNoSchedule
上述示例中,每个键值对后面的调度效果表示了当 Pod 没有与之对应的容忍度时,调度器的行为。"NoSchedule" 表示绝对禁止,"PreferNoSchedule" 表示尽量不调度。
容忍度(Tolerations):
容忍度是 Pod 的属性,用于告诉调度器它可以容忍哪些节点上存在的污点。每个容忍度也有一个键值对,例如:
key1=value1:NoSchedule
key2=value2:PreferNoSchedule
上述容忍度的定义表示,Pod 允许被调度到带有 key1=value1 或 key2=value2 污点的节点上,而且对于 key1=value1 污点,Pod 不允许在节点上被调度时受到 NoSchedule 影响。
示例:
考虑一个节点上有如下污点:
gpu=true:NoSchedule
然后,如果一个 Pod 具有以下容忍度:
gpu=true:NoSchedule
那么这个 Pod 就可以被调度到带有 gpu=true 污点的节点上,即使该节点上有 NoSchedule 效果。
这样的机制允许在 Kubernetes 集群中更好地控制对不同节点的 Pod 调度,确保 Pod 在满足硬件或软件需求的节点上运行。
转载请注明出处:http://www.zyzy.cn/article/detail/9768/Kubernetes