Etcd leader election storms kube-apiserver timeout

francois-albert 12/04/2026
RÉSOLU
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

Salut l'équipe. On a des gros soucis sur un cluster k8s. etcd part en vrille régulièrement des leader elections toutes les 30s. ça timeoute le kube-apiserver et les pods deviennent NotReady. L'infra est sur des instances assez puissantes pourtant. des pistes ?

kubectl get pods --all-namespaces | grep -E "etcd|kube-apiserver"
kube-system   etcd-master-1         1/1     Running
kube-system   etcd-master-2         1/1     Running
kube-system   etcd-master-3         1/1     Running
kube-system   kube-apiserver-master-1   1/1     Running
kube-system   kube-apiserver-master-2   1/1     Running
kube-system   kube-apiserver-master-3   1/1     Running
12/04/2026 à 08:33

16 commentaires

alice38
Membre Actif Secouriste
Avatar de alice38
alice38
Membre Actif Secouriste

ptete un pb de réseau entre tes noeuds etcd ? des latences sur le rtt des peers ? regarde si y a pas du packet loss sur l'interface ou des drops côté firewall

13/04/2026 à 05:58

ouais carrément faut monitorer le etcd_network_peer_round_trip_time_seconds. si ça peak c'est le réseau. et la latence disque sur l'iops de etcd_disk_wal_fsync_duration_seconds ça donne quoi

14/04/2026 à 00:30
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

j'ai checké le réseau les pings entre les noeuds etcd sont stables genre 0.2ms. pas de packet loss. par contre le wal_fsync duration peak à 100ms par moments c'est pas normal si ?

14/04/2026 à 21:20
alice38
Membre Actif Secouriste
Avatar de alice38
alice38
Membre Actif Secouriste

100ms c'est énorme etcd a besoin de latences très faibles pour le wal typiquement sous les 10ms voir 1ms. t'es sur quel type de stockage ? ssd local ou ebs/azure disk ?

15/04/2026 à 17:22
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

c'est du gp2 sur aws. je pensais que c'était suffisant pour des petits clusters

16/04/2026 à 11:38

gp2 c'est pas top pour etcd. tu peux avoir des iops burstables mais la baseline est pas folle. faut du io1/io2 ou local ssd nvme si t'es sur ec2 direct. pour etcd il faut de la latence garantie

17/04/2026 à 06:09
alice38
Membre Actif Secouriste
Avatar de alice38
alice38
Membre Actif Secouriste

exact gp2 peut throttle si tu consommes trop de crédits. regarde tes métriques cloudwatch pour le VolumeReadOps/WriteOps et VolumeQueueLength

18/04/2026 à 04:08
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

ok je vois des queues length monter à 20-30 pendant les pics de leader election. ça confirme la latence disque

18/04/2026 à 22:44

tu peux aussi vérifier la version de etcd. des anciennes versions sont moins résilientes aux latences disque. et la taille de tes snapshots etcd ça grossit vite ?

19/04/2026 à 20:21
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

etcd en 3.5.x c'est la dernière. les snapshots sont gérés par kube-apiserver via les apiserver-count-quorum. la taille est stable genre quelques centaines de Mo

20/04/2026 à 16:33
alice38
Membre Actif Secouriste
Avatar de alice38
alice38
Membre Actif Secouriste

t'as des gros volumes de writes sur ton cluster ? des apps qui créent/suppriment bcp de ressources k8s ?

21/04/2026 à 14:02
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

on a un operator qui créé plein de CRDs temporaires pour des jobs ça pourrait être ça

22/04/2026 à 14:00

ouais ça peut être ça. chaque modification sur etcd c'est une write. si l'operator spamme ça peut mettre la pression sur le disque. regarde etcd_mvcc_db_total_size_in_bytes et etcd_mvcc_delete_total

23/04/2026 à 12:55
alice38
Membre Actif Secouriste
Avatar de alice38
alice38
Membre Actif Secouriste

pour tester tu peux scaler ton etcd sur du io2 ou local nvme direct. ou sinon réduire le nombre de CRD créé par l'opérateur si c'est possible

24/04/2026 à 07:24
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

ok je vais tenter de passer les volumes etcd sur du io2 provisionné à 5000 iops. et je vais optimiser l'opérateur pour qu'il soit moins verbeux. je vous dis si ça améliore

25/04/2026 à 01:37
francois-albert
Auteur Actif Rédacteur
Avatar de francois-albert
francois-albert
Auteur Actif Rédacteur

bon ben on est passé sur de l'io2 5000 iops et y a plus aucun pic de latence. le cluster est rock solid. merci pour l'aide c'était bien le stockage

26/04/2026 à 01:31

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire