etcd leader election loop sur k8s cluster prod

Posté par elise-philippe le 07/04/2026
RÉSOLU

elise-philippe

Membre depuis le 05/08/2024

actif

salut la tech team j'ai mon cluster k8s en prod qui part en vrille le kube-apiserver répond plus par intermittence les logs etcd montrent des election loops à gogo j'ai 3 nodes control plane c'est censé être stable je pige pas

# exemple de log qui spamme
etcd | 2023-10-27 10:30:15.123456 I | etcdserver: no leader a.k.a. master in current term, trying to elect a new one
etcd | 2023-10-27 10:30:15.123457 I | etcdserver: server 1234567890abcdef started election at term 1234
etcd | 2023-10-27 10:30:15.123458 I | etcdserver: server 1234567890abcdef saw a quorum of votes and won the election at term 1234
etcd | 2023-10-27 10:30:15.123459 I | etcdserver: published and took the leadership at term 1234
etcd | 2023-10-27 10:30:16.123456 W | etcdserver: health check for peer 1234567890abcdef is taking too long (timeout=100ms)

Commentaires

guy-georges

Membre depuis le 09/02/2025

actif secouriste

hmm election loop ça sent la latence réseau ou les disques I/O sature check les métriques du disque iops latence sur les control plane et le network latency entre eux

elise-philippe

Membre depuis le 05/08/2024

actif

j'ai déjà regardé les disques sont pas à fond le cpu est ok et le réseau entre les control plane est censé être en 10gbe y'a rien qui justifie ça

guy-georges

Membre depuis le 09/02/2025

actif secouriste

même si les disques sont pas à fond c'est pas les iops absolus mais la latence moyenne qui compte un disque lent même avec peu d'iops peut bloquer etcd regarde le iostat ou les métriques block device de node_exporter

elise-philippe

Membre depuis le 05/08/2024

actif

ok j'ai mis en place un `iostat -x 1` sur les trois nodes. le disque système (/dev/sda) a un `await` qui monte parfois à 50-100ms sur un des nodes. les autres sont bas

guy-georges

Membre depuis le 09/02/2025

actif secouriste

voilà ça c un point un seul node lent peut foutre le bordel etcd est super sensible à la latence du disque et du réseau même un seul ms de trop peut provoquer un split brain ou des élections infinies

elise-philippe

Membre depuis le 05/08/2024

actif

mais pourquoi juste un seul node ? ils ont le même hardware

guy-georges

Membre depuis le 09/02/2025

actif secouriste

y'a plein de raisons un autre process qui fait de l'i/o intensive sur ce node un snapshot backup du disque de la vm qui tourne un driver défectueux t'as des logs système qui parlent de ça sur ce node précisément

elise-philippe

Membre depuis le 05/08/2024

actif

je vois rien de spécial dans les dmesg ni dans les logs du kubelet pas de process bizarre qui bouffe du i/o par contre je suis sur que ce node est aussi le leader actuel

guy-georges

Membre depuis le 09/02/2025

actif secouriste

c'est fort possible que le leader ait plus de charge et que ça le rende plus sensible aux problèmes de latence. essaie de migrer le leader sur un autre node ou de rebooter le node lent si c'est possible en prod

elise-philippe

Membre depuis le 05/08/2024

actif

impossible de rebooter direct en prod là ça va péter encore plus mais je peux forcer un nouveau leader. comment je fais ça proprement sur etcd

guy-georges

Membre depuis le 09/02/2025

actif secouriste

tu peux pas forcer un leader directement etcd c'est du raft ça élit tout seul. par contre tu peux mettre le node en maintenance si c'est une vm ou conteneur tu le vire du cluster etcd et tu le rajoute après

elise-philippe

Membre depuis le 05/08/2024

actif

trop risqué on a pas le droit de défaire et refaire le cluster etcd à chaud. est-ce que le tuning des paramètres etcd pourrait aider type `election-timeout` ou `heartbeat-interval`

guy-georges

Membre depuis le 09/02/2025

actif secouriste

oui ça peut mais c'est un pansement pas une solution à la cause. si tu augmentes le timeout tu masques le problème. mais pour stabiliser en urgence tu peux doubler le `heartbeat-interval` à 100ms et `election-timeout` à 1000ms

elise-philippe

Membre depuis le 05/08/2024

actif

ok j'ai ajusté les timeouts c'est un peu plus stable les elections sont moins fréquentes. on va creuser le i/o du disque sur ce node. thx pour les pistes c'est moins le chaos

guy-georges

Membre depuis le 09/02/2025

actif secouriste

d'acc pas de souci. une fois que c'est stable faudrait investiguer la cause profonde de la latence i/o sur ce node particulier

elise-philippe

Membre depuis le 05/08/2024

actif

ouais on va faire ça je pense à une maj du firmware du disque ou un bug vmware on est dessus thx

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