63 了解 kubectl taint: 控制节点上的 Pod 调度
kubectl taint 是 Kubernetes 中用于向节点添加污点的命令。污点允许您控制哪些 Pod 可以在特定节点上调度,确保只有特定 Pod 可以在具备特定条件的节点上运行。
以下代码片段演示了如何向节点添加污点。该污点将阻止 Pod 在该节点上调度,除非它们容忍该污点。
【代码清单】
kubectl taint nodes node-name key=value:NoSchedule
【执行结果】
node/node-name tainted
在此命令中,用节点的实际名称替换 node-name。key=value:NoSchedule 部分指定了污点。以下是每个部分的含义:
key: 作为污点标识符的字符串。
value:值: 提供污点附加信息的字符串。
NoSchedule(无调度): 该效果表示除非有匹配的容忍度,否则不会在该节点上调度 Pod。
例如,如果您想防止任何 Pod 被调度到节点上,除非它们能容忍特定条件,您可以应用如上图所示的 “污点”。没有相应容忍度的 Pod 将无法在该节点上运行。
【小知识】
污点与容忍度一起使用。容忍度是 Pod 表明它可以容忍特定污点的一种方式。如果 Pod 在某个节点上没有污点容忍度,它就不会被调度到该节点上。这种机制对于在 Kubernetes 集群中有效管理资源至关重要,尤其是在为特定工作负载保留某些节点的环境中。