Master 被污染 - 无法部署 Pod

Mch*_*eti 6 taint kubernetes

在我的 Kubernetes 仪表板中,我看到一个节点具有标签

node-role.kubernetes.io/master:  
Run Code Online (Sandbox Code Playgroud)

结果是,除了这个节点之外,我的所有 Pod 都部署在集群上。(当我增加副本时,主节点上不会部署任何pod)如何删除标签,我尝试了Kubernetes故障排除指南

以下命令没有成功

kubectl taint nodes --all node-role.kubernetes.io/master:-
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl taint nodes --all node-role.kubernetes.io/master:NoSchedule-
Run Code Online (Sandbox Code Playgroud)

两者都产生了消息(片段)

taint "node-role.kubernetes.io/master:" not found
taint "node-role.kubernetes.io/master:" not found
taint "node-role.kubernetes.io/master:NoSchedule" not found
Run Code Online (Sandbox Code Playgroud)

预期输出应该是:

  • Pod 应该部署在每个节点(包括 Master)上

我的版本是v1.14.1

Das*_*kar 14

首先使用节点名检查是否存在污点

kubectl describe node <nodename> | grep Taints
Run Code Online (Sandbox Code Playgroud)

你会得到类似这样的东西(master或worker_node)

node-role.kubernetes.io/master:NoSchedule
Run Code Online (Sandbox Code Playgroud)

要从节点中删除污点,只需像这样运行(在我的例子中它是主节点)

kubectl taint node master node-role.kubernetes.io/master:NoSchedule-
Run Code Online (Sandbox Code Playgroud)

确保-在 NoSchedule 之后添加


cha*_*har 3

尝试kubectl taint nodes --all node-role.kubernetes.io/master- 不使用:和 不使用第二个命令。

NoSchedule 只是污点的结果,不需要显式删除。