I am trying to deploy my microservices into Kubernetes cluster. My cluster having one master and one worker node. I created this cluster for my R&D of Kubernetes deployment. When I am trying to deploy I am getting the even error message like the following,
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate
My attempt
When I am exploring about the error, I found some comments in forums for restarting the docker in the node etc. So after that I restarted Docker. But still the error is the same.
When I tried the command kubectl get nodes
it showing like that both nodes are master and both are ready
state.
NAME STATUS ROLES AGE VERSION
mildevkub020 Ready master 6d19h v1.17.0
mildevkub040 Ready master 6d19h v1.17.0
I did not found worker node here. I created one master (mildevkub020) and one worker node (mildev040) with one load balancer. And I followed the official documentation of Kubernetes from the following link,
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
My question
Is this error is because of the cluster problem? Because I am not finding the cluster worker node. Only master node.
You can run below command to remove the taint from master node and then you should be able to deploy your pod on that node
kubectl taint nodes mildevkub020 node-role.kubernetes.io/master-
kubectl taint nodes mildevkub040 node-role.kubernetes.io/master-
Now regarding why its showing as master node check the command you ran to join the node with kubeadm. There are separate commands for master and worker node joining.
You can also get this "taint" type of message when your docker environment doesn't have enough resources allocated.
For example, in Docker Desktop for Mac, allocate more memory/cpu/swap in preferences, and it may solve your problem.
This can also happen if kubernetes auto scaling doesn't have enough nodes to launch a new pod, which you will may see as "Insufficient CPU" on describe.