要删除节点 k8s-node01
上的两个污点(Taints),需分别针对每个污点的效果(Effect)执行以下命令:
✅ 步骤说明
1. 删除 NoSchedule
效果的污点
kubectl taint node k8s-node01 node.kubernetes.io/unreachable:NoSchedule -
-
表示删除该污点。- 必须完整指定
key:effect
组合以精确匹配目标污点。
2. 删除 NoExecute
效果的污点
kubectl taint node k8s-node01 node.kubernetes.io/unreachable:NoExecute -
🔍 为什么需要分两次执行?
- Kubernetes 允许同一密钥(
node.kubernetes.io/unreachable
)对应多个不同效果(NoSchedule
和NoExecute
)的污点。 - 每个污点由
key:effect
唯一标识,因此需要分别删除。
📌 验证是否删除成功
执行以下命令查看节点剩余污点:
kubectl get node k8s-node01 -o custom-columns=TAINTS:.spec.taints
如果输出为空,则表示所有污点已成功删除。
⚠️ 注意事项
- 权限要求:需要具有对节点的操作权限(如
edit
或admin
角色)。 - 影响范围:
- 删除
NoSchedule
:允许新 Pod 调度到该节点。 - 删除
NoExecute
:停止驱逐已运行在该节点上的 Pod。
- 删除
- 谨慎操作:如果这些污点用于维护集群稳定性(如隔离故障节点),请确保删除后不会引发意外调度或负载问题。
🚫 批量删除所有同名污点(可选)
如果希望一次性删除所有 node.kubernetes.io/unreachable
相关的污点(无论效果),可以使用通配符:
kubectl taint node k8s-node01 node.kubernetes.io/unreachable -
此命令会删除所有匹配该键的污点(包括 NoSchedule
和 NoExecute
)。