6

In my Kubernetes Dashboard i see, that one node has the Label

node-role.kubernetes.io/master:  

The result is, that all my pods are deployed on the cluster except this node. ( When i increase the replica no pod will be deployed on the master node) How can i remove the label, i tried the Kubernetes Trouble Shooting Guide

Following commands did not succeed

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-

both of them resulted in the message (snip)

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

Expected output should be:

  • Pods should be deployed on each of the nodes (including the Master)

My Version is v1.14.1

Mchoeti
  • 536
  • 1
  • 8
  • 24

3 Answers3

14

First check the taint present or not with nodename

kubectl describe node <nodename> | grep Taints

and you will get something like this (master or worker_node)

node-role.kubernetes.io/master:NoSchedule

To remove taint from node just run like this (here in my case it is master node)

kubectl taint node master node-role.kubernetes.io/master:NoSchedule-

Make sure you add - after NoSchedule

Davey
  • 2,355
  • 1
  • 17
  • 18
Dashrath Mundkar
  • 7,956
  • 2
  • 28
  • 42
3

Try just kubectl taint nodes --all node-role.kubernetes.io/master- without the : and without the second command.

The NoSchedule is just a result of the taint, it doesn't need to be removed explicitly.

char
  • 2,063
  • 3
  • 15
  • 26
  • According to docs - https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ `kubectl taint nodes :NoSchedule-` – Veerendra K May 16 '19 at 07:38
  • Hi, unfortuenately it is not working kubectl taint nodes --all node-role.kubernetes.io/master- results in taint "node-role.kubernetes.io/master:" not found , i updated the question – Mchoeti May 20 '19 at 11:47
  • The `..not found` is to be expected, as it is trying to remove the taint on all nodes that have the master role. But you should get `node "" untainted` as well. Can you add the output of `kubectl get nodes -o json | jq .items[].spec.taints` to your post? That should show which taints are still on your nodes. – char Jun 05 '19 at 14:08
1

I had to run kubectl taint nodes <node-name> node-role.kubernetes.io/control-plane- to remove the taint.

I identified this by first identifying the nodes in the cluster

kubectl get nodes.

Then identify if the node is tainted,

kubectl describe node <node-name> | grep Taints

Output

Taints:             node-role.kubernetes.io/control-plane:NoSchedule

If the node is tainted you can run

kubectl taint nodes <node-name> node-role.kubernetes.io/control-plane-

Tejash JL
  • 66
  • 3