etcd hyper lent sur k8s le cluster agonise

xmarchal 18/01/2025
RÉSOLU
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

Salut la team. Mon cluster k8s est à l'agonie. etcd est super lent les requêtes timeout j'ai l'impression qu'il galère avec le disque. c'est un 5-node cluster sur des nvme

kubectl get --raw /metrics | grep etcd_server_has_leader
etcd_server_has_leader 1
kubectl get --raw /metrics | grep etcd_server_slow_apply_total
etcd_server_slow_apply_total 12345
18/01/2025 à 11:30

17 commentaires

jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

Yo. slow_apply_total c'est pas bon du tout. t'as quelle version d'etcd et de k8s. t'as regardé les iops sur tes disques nvme ou les latences disk

19/01/2025 à 10:36
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

k8s 1.28 et etcd 3.5.7. les nvme sont à genre 10% d'utilisation selon les métriques de l'hyperviseur pas de latence anormale du côté infra

20/01/2025 à 09:30
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

hum intéressant. regarde ton wal fsync_duration_seconds et commit_duration_seconds dans les métriques etcd. c'est souvent le coupable. ptete aussi trop de mvcc revisions sur etcd

21/01/2025 à 08:01
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

ok je regarde ça. le wal_fsync_duration est dans les 50ms et le commit_duration monte parfois à 500ms. ça sent pas bon. mvcc_put_total est à des millions

22/01/2025 à 04:56
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

500ms pour un commit c'est n'importe quoi. tes snapshots et compactions ça se passe comment t'as des erreurs de ça dans les logs etcd

22/01/2025 à 23:15
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

pas d'erreurs visibles sur les snapshots mais j'ai des warnings sur les compactions qui prennent trop de temps

23/01/2025 à 17:26
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

ok ça confirme. t'as pas un souci de network latency entre tes membres etcd. genre les vms sont sur des hôtes différents avec une interco pourrie ou un firewall qui fait du packet inspection

24/01/2025 à 15:36
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

non l'infra est plate le réseau est censé être en 10gbps sans bottleneck. j'ai run un iperf entre les nodes et c ok

25/01/2025 à 10:57
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

t'as le snapshot-count par défaut ou tu l'as modifié. des fois trop peu de snapshots ça veut dire des grosses compactions qui bloquent tout. et ta taille de base tu l'as check. etcdctl db size

26/01/2025 à 08:28
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

snapshot-count est par défaut à 100k. la db size est à 4gb. c'est pas énorme pour 5 nodes. j'ai vu des trucs sur auto-compaction-retention faut ptete baisser ça

27/01/2025 à 03:12
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

4gb c'est pas si petit que ça non plus. auto-compaction-retention c'est pas bête. si tu gardes trop d'historique ça alourdit les compactions. essaie de le mettre à 1h au lieu du 24h par défaut si t'en as besoin

27/01/2025 à 23:08
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

j'ai mis auto-compaction-retention à 1h. j'ai redémarré les membres un par un pour appliquer la config. ça a l'air un peu mieux. les commit_duration sont tombés à 100ms max. c'est pas encore parfait mais c'est jouable

28/01/2025 à 17:30
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

good start. regarde aussi tes métriques de cpu et memory sur les nodes etcd. si un node galère ça ralentit tout le quorum

29/01/2025 à 12:07
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

les cpu sont à 30% la ram à 50%. pas de bottleneck là. j'ai remarqué que le leader prend plus cher en cpu. c'est normal j'imagine

30/01/2025 à 08:35
jean-bonneau
Membre Actif Secouriste
Avatar de jean-bonneau
jean-bonneau
Membre Actif Secouriste

ouais le leader est plus sollicité. t'as check si t'as pas des crd ou des webhooks qui spam etcd avec des updates inutiles. ça arrive souvent

31/01/2025 à 05:23
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

putain bien vu. j'ai un webhook pour un admission controller qui fait des checks un peu trop lourds sur chaque objet. je vais le désactiver temporairement pour voir

31/01/2025 à 23:42
xmarchal
Auteur Actif
Avatar de xmarchal
xmarchal
Auteur Actif

JE CROIS QUE C'ÉTAIT ÇA! après avoir désactivé le webhook les commit_duration sont redescendus sous les 50ms et le cluster est de nouveau réactif. MERCI ENCORE j'aurais jamais trouvé tout seul le coup du webhook.

01/02/2025 à 22:19

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