Back to all scenarios
Scenario #12
Cluster Management
K8s v1.20, kubeadm cluster

Stuck CSR Requests Blocking New Node Joins

New nodes couldn’t join due to a backlog of unapproved CSRs.

Find this helpful?
What Happened

A spike in expired certificate renewals caused hundreds of CSRs to queue, none of which were being auto-approved. New nodes waited indefinitely.

Diagnosis Steps
  • 1Ran kubectl get csr – saw >500 pending requests.
  • 2New nodes stuck at kubelet: “waiting for server signing”.
  • 3Approval controller was disabled due to misconfiguration.
Root Cause

Auto-approval for CSRs was turned off during a security patch, but not re-enabled.

Fix/Workaround
bash
CopyEdit
kubectl certificate approve <csr-name>
• Re-enabled the CSR approver controller.
Lessons Learned

CSR management is critical for kubelet-node communication.

How to Avoid
  • 1Monitor pending CSRs.
  • 2Don’t disable kube-controller-manager flags like --cluster-signing-cert-file.