污点和容忍度
当定义Pod或控制器的“tolerations”字段时,需要指定以下参数来匹配污点和容忍度:
-
key:要匹配的污点的键(key),通常是由管理员定义的自定义字符串。例如,如果您想将Pod调度到带有GPU资源的节点上,则可以为这些节点打上“gpu”污点标记,在“tolerations”字段中使用“key: gpu”来匹配此污点。
-
operator:比较运算符,用于确定如何匹配污点的键值对。目前支持的运算符包括:
Equal:匹配与指定值完全相等的污点。 Exists:匹配所有带有指定键的污点。 NotEqual:匹配任何不等于指定值的污点。 DoesNotExist:匹配没有指定键的所有污点。
-
value:要匹配的污点的值(value)。如果污点的值与此字段中的值相同,则匹配成功。value字段是可选的,如果未指定,则默认情况下将匹配任何具有相同键的污点。
-
effect:在匹配成功后应用的效果。通常使用的效果有:
NoSchedule:阻止该节点上的新Pod被调度,但允许现有Pod继续运行。 PreferNoSchedule:尽可能不在该节点上调度新的Pod,但不会阻止现有Pod的运行。 NoExecute:从该节点上逐步删除所有不匹配的Pod,直到只剩下具有匹配容忍度的Pod为止。
-
tolerationSeconds:可选字段,指定容忍度的持续时间(单位为秒)。如果该Pod或控制器无法在指定时间内调度到满足条件的节点上,则Kubernetes将放弃该节点并执行其他操作。
可以根据需要组合这些参数来定义Pod或控制器的容忍度规则,并在集群中精确地控制Pod的部署位置。