- Inspect the cluster and the failing Deployment.
- Identify which control-plane components are failing.
- Fix typos and misconfigured hostPath volumes in static Pod manifests.
- Confirm the cluster returns to a healthy state and Pods are scheduled.
kubectl shorter and enable shell autocompletion:
Set an alias and enable bash completion so you can use
k as a short form for kubectl.1) Inspect the cluster and the failing Deployment
Start by verifying nodes and workloads:Node: <none>, it hasn’t been scheduled. The kube-scheduler is responsible for assigning Pods to nodes — check the scheduler next.
2) kube-scheduler CrashLoopBackOff — fix static manifest typo
List control-plane Pods in thekube-system namespace:
/etc/kubernetes/manifests. Edit the manifest on the control plane host to correct the command.
Static control-plane Pods are managed by kubelet reading manifest files from
/etc/kubernetes/manifests. Edit those files on the control plane host to fix static Pod configuration.kube-scheduler:
kube-system Pods until the scheduler is Running/Ready:
3) Scale the Deployment and check kube-controller-manager
Try scaling the Deployment:1/2 (desired 2 but only 1 available), the controller manager may be failing. The controller-manager runs the control loops that reconcile Deployments and ReplicaSets.
Check the controller manager Pod:
--kubeconfig flag in the static manifest, pointing to a non-existent file:
--kubeconfig flag to point to the correct file:
Running/Ready:
4) controller-manager: missing CA file — fix hostPath volume mapping
If scaling further fails (for example, scaling to 3 replicas but only 2 are created), check controller manager logs for filesystem/volume errors:hostPath volume in the static manifest. Inspect /etc/kubernetes/manifests/kube-controller-manager.yaml and review the volumes: section.
Example of an incorrect hostPath mapping:

Troubleshooting checklist
Use this quick checklist when control-plane components fail or Pods remain pending.
After any change to static manifests, kubelet will automatically restart the static Pod. Monitor status with:
Summary
- If Pods are pending with
Node: <none>, start by checking the kube-scheduler. - Static control-plane Pods are defined as manifest YAMLs in
/etc/kubernetes/manifestsand are managed by kubelet. - Common failures are caused by simple typos in the
command:field or incorrect flags like--kubeconfig. - Filesystem errors (missing CA or kubeconfig) most often point to an incorrect
hostPathmapping in the static manifest. - Edit the static manifest on the control-plane host, save it, then watch
kubectl get pods -n kube-system --watchto confirm components return toRunning/Ready. - Once control-plane components are healthy, Deployments and ReplicaSets will reconcile and Pods will be scheduled.