What CLI command can I type to remove the node-role.kubernetes.io/master:NoSchedule
taint from the master node in a Kubernetes cluster?
The following command is failing:
[lnxcfg@ip-10-0-0-193 ~]$ kubectl taint nodes $(kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}') key:node-role.kubernetes.io/master:NoSchedule-
error: invalid taint effect: node-role.kubernetes.io/master, unsupported taint effect
As you can see below, I am able to get the name of the master node successfully by using the following command, which is also embedded in the above failing command:
[lnxcfg@ip-10-0-0-193 ~]$ kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}'
ip-10-0-0-193.us-west-2.compute.internal
This is an AWS Linux 2 node hosting the master node of a single master Kubernetes cluster.
as per documentation https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#taint
this should work.
kubectl taint nodes $(kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}') node-role.kubernetes.io/master-
kubectl taint nodes $(hostname) node-role.kubernetes.io/master:NoSchedule-
But you can also schedule on master node without removing the taint:
apiVersion: extensions/v1beta1
kind: Deployment
...
spec:
...
spec:
...
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
you can edit node configuration and comment the taint part.
kubectl edit node <node_name>
once you comment the taint json and exit. It would update the node.