基于MATLAB的直流无刷电机速度控制(Simulink仿真实现)
2026/6/23 0:32:42
什么是污点?
污点(Taint)是施加在节点上的属性,用于排斥不匹配的Pod。从而避免Pod调度到该节点上。功能上和pod的亲和性相反
什么是污点容忍度?
| 参数名 | 描述 |
|---|---|
| 污点键 | 节点的污点键。 |
| 操作符 | Equal:设置此操作符表示准确匹配指定污点键(必填)和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。 Exists:设置此操作符表示匹配存在指定污点键的节点,此时容忍度不能指定污点值。若不填写污点键则可以容忍全部污点。 |
| 污点值 | 操作符为Equal时需要填写污点值。 |
| 污点策略 | 全部:表示匹配所有污点效果。 NoSchedule:表示匹配污点效果为NoSchedule的污点。 PreferNoSchedule:表示匹配污点效果为 PreferNoSchedule的污点。 NoExecute:表示匹配污点效果为NoExecute的污点。 |
| 容忍时间窗 | 即tolerationSeconds参数,当污点策略为NoExecute时支持配置。在容忍时间窗内,Pod还会在拥有污点的节点上运行,超出时间后会被驱逐。 |
污点示例:
spec: template: spec: tolerations: - key: istio operator: Equal value: ingressgateway effect: NoExecute| 污点效果 | Pod未设置对污点的容忍策略 | Pod已设置对污点的容忍策略 |
|---|---|---|
| NoExecute | 已运行在该节点的Pod会立刻被驱逐。未运行的Pod不会被调度到该节点。 | 未指定容忍时间窗(tolerationSeconds):Pod可以在这个节点上一直运行。已指定容忍时间窗(tolerationSeconds):在容忍时间窗内,Pod还会在拥有污点的节点上运行,超出时间后会被驱逐。 |
| PreferNoSchedule | 已运行在该节点的Pod不会被驱逐。未运行的Pod尽量不调度到该节点。 | Pod可以在这个节点上一直运行。 |
| NoSchedule | 已运行在该节点的Pod不会被驱逐。未运行的Pod不会被调度到该节点。 | Pod可以在这个节点上一直运行。 |
tolerations: - key: "gpu" operator: "Equal" value: "true" effect: "NoSchedule"Kubernetes会自动给Pod添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的容忍度,且配置容忍时间窗(tolerationSeconds)为300s。这些默认容忍度策略表示当Pod运行的节点被打上这两个污点之一时,可以在5分钟内依旧保持运行在该节点上。
说明:
DaemonSet中的Pod被创建时,针对以上污点自动添加的容忍度将不会指定容忍时间窗,即表示节点存在上述污点时,DaemonSet中的Pod一直不会被驱逐。
默认策略配置示例:
tolerations: - key: node.kubernetes.io/not-ready operator: Exists effect: NoExecute tolerationSeconds: 300 - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 300通过多集群k8s管理平台xkube的功能可以轻松的设置节点污点和pod容忍度,xkube安装部署参考:https://blog.csdn.net/weixin_56364253/article/details/156390146
功能参考下图: