Question: How to Schedule Master Node to Run Pod Workloads Like the Worker Node?

By default, only the worker node can run the pod workloads and the master is only responsible for the scheduling and configuration.

$ kubectl get nodes -o json | jq .items[].spec.taints
[
  {
    "effect": "NoSchedule",
    "key": "node-role.kubernetes.io/master"
  }
]
$ kubectl get nodes -o json | grep master
"node-role.kubernetes.io/master": ""
"key": "node-role.kubernetes.io/master"

However, it is possible disable the “NoSchedule” property so that the master node can run pod workloads as well.

$ kubectl taint nodes --all node-role.kubernetes.io/master-
node/k8s-all-in-one untainted
$ kubectl get nodes -o json | jq .items[].spec.taints
null
$ kubectl get nodes -o json | grep master
"node-role.kubernetes.io/master": ""