EtcdInsufficientMembers
EtcdInsufficientMembers
Description
This alert fires when the number of healthy etcd cluster members falls below the quorum threshold. etcd requires a strict majority of members to be available in order to accept write requests. When quorum is lost, etcd halts all writes and the Kubernetes API server is no longer able to persist state changes, effectively freezing cluster control-plane operations.
Possible Causes:
- Multiple etcd nodes are down simultaneously (hardware failure, power loss, cloud instance termination)
- Network partition splitting the etcd member set into groups where no group has a majority
- Simultaneous
CrashLoopBackOffor OOMKill across multiple etcd pods (e.g. after a bad update or config change) - An etcd cluster resize operation left the cluster with fewer members than intended
- Node maintenance performed without ensuring quorum was maintained (e.g. draining too many etcd nodes at once)
- Storage exhaustion on multiple nodes causing concurrent etcd failures
Severity estimation
Critical — quorum loss is a cluster-halting event.
- In a 3-member cluster, quorum requires 2 healthy members; losing 2 members halts all writes
- In a 5-member cluster, quorum requires 3 healthy members; losing 3 members halts all writes
- With quorum lost, no new Pods, Services, ConfigMaps, or any other Kubernetes resources can be created or updated; existing workloads continue running but the cluster cannot be managed
- This alert almost always fires alongside
EtcdNoLeaderand requires immediate escalation
Troubleshooting steps
-
Determine how many members are down and which ones
- Command / Action:
- List all etcd pods and check their status
-
kubectl get pods -n kube-system -l component=etcd -o wide
- Expected result:
- All pods should be in
Runningstate; pods inCrashLoopBackOff,Error,Pending, orTerminatingare the unhealthy members
- All pods should be in
- additional info:
- Note the node name for each unhealthy pod — multiple pods on different nodes failing simultaneously suggests a broader infrastructure issue (network segment, storage backend, cloud AZ)
- Command / Action:
-
Check the status of the nodes running the failed etcd members
- Command / Action:
- Verify whether the nodes themselves are alive and healthy
-
kubectl get nodes -o wide
-
kubectl describe node <node-name>
- Expected result:
- Nodes are in
Readystate with noMemoryPressure,DiskPressure, orPIDPressureconditions
- Nodes are in
- additional info:
- If nodes are
NotReadyor unreachable, the root cause is infrastructure-level (network partition, hardware failure, cloud outage) — address the node issue first - If nodes are
Readybut etcd pods are failing, the problem is within etcd itself
- If nodes are
- Command / Action:
-
Check logs of the failed etcd pods
- Command / Action:
- Identify why the members are failing to start or stay running
-
kubectl logs -n kube-system <failed-etcd-pod> –tail=100
-
kubectl logs -n kube-system <failed-etcd-pod> –previous –tail=100
-
kubectl describe pod -n kube-system <failed-etcd-pod>
- Expected result:
- Logs reveal a specific failure reason (disk full, certificate expired, data corruption, network error)
- additional info:
- Common log patterns that indicate the failure mode:
no space left on device— disk full, check/var/lib/etcdvolume usagecertificate has expired— TLS cert renewal required before member can rejoinfailed to find database snapshot— possible data corruption, recovery may be neededrafthttp: failed to dial— network issue preventing peer communication
- Common log patterns that indicate the failure mode:
- Command / Action:
-
Attempt to restart the failed etcd members
- Command / Action:
- Delete the failing pod(s) to trigger an automatic restart; static pods are managed by kubelet and restart automatically
-
kubectl delete pod -n kube-system <failed-etcd-pod>
- Expected result:
- The pod restarts, rejoins the cluster, and quorum is restored;
EtcdInsufficientMembersandEtcdNoLeadershould resolve
- The pod restarts, rejoins the cluster, and quorum is restored;
- additional info:
- Do not restart all failed members simultaneously if any healthy member remains — restart them one at a time to avoid permanently losing quorum
- A restarting member may lag behind the leader’s RAFT index briefly; this is normal and self-heals within seconds
- Command / Action:
-
Verify quorum has been restored from a healthy member
- Command / Action:
- Exec into a running etcd pod and check the cluster health and member list
-
kubectl exec -n kube-system <etcd-pod> – etcdctl endpoint health –cluster –write-out=table
-
kubectl exec -n kube-system <etcd-pod> – etcdctl endpoint status –cluster –write-out=table
- Expected result:
- All members report
healthy: true; exactly one member showsIS LEADER: true; the previously failed member is back with a syncedRAFT INDEX
- All members report
- additional info:
- Pass
--cacert,--cert,--keyif TLS is required. For RKE2: certs are at/var/lib/rancher/rke2/server/tls/etcd/ - If a member cannot rejoin after restart (e.g. due to data corruption), it may need to be removed from the cluster and re-added as a fresh learner member
- Pass
- Command / Action:
-
Check disk space on affected etcd nodes
- Command / Action:
- SSH into each affected node and verify the etcd data volume is not full
-
df -h /var/lib/etcd
-
du -sh /var/lib/etcd
- Expected result:
- Disk usage is well below capacity on all etcd nodes
- additional info:
- A full disk is a common silent killer — etcd will fail to write WAL entries and crash without obvious networking symptoms
- If disk is full, free space by triggering compaction and defragmentation; refer to
EtcdDatabaseHighFragmentationRatioandEtcdExcessiveDatabaseGrowth
- Command / Action:
-
Escalate to etcd disaster recovery if quorum cannot be restored
- Command / Action:
- If too many members have lost data or cannot rejoin, restore the cluster from the most recent etcd snapshot
- Locate the latest snapshot:
-
ls -lht /var/lib/etcd/member/snap/
- Follow the etcd disaster recovery procedure to restore from snapshot
- Expected result:
- Cluster is restored to the state at snapshot time; control-plane operations resume
- additional info:
- Restoring from snapshot loses any state written after the snapshot was taken — this is a last resort
- In managed Kubernetes environments (EKS, GKE, AKS), contact the cloud provider; etcd management may be handled externally
- Ensure all etcd nodes are stopped before starting a snapshot restore to avoid split-brain
- Command / Action:
Additional resources
- etcd disaster recovery
- etcd failure modes and quorum
- etcd runtime reconfiguration — adding and removing members
- Kubernetes etcd cluster administration
- Related alert: EtcdNoLeader
- Related alert: EtcdMembersDown
- Related alert: EtcdDatabaseQuotaLowSpace
- Related alert: EtcdDatabaseHighFragmentationRatio