13 commentaires
salut ! ouais ça sent le problème etcd. c quoi la version d'etcd et de k8s ? quel backend storage pour etcd ? typiquement c un problème de disque ou de fragmentation.
ok gp3 c'est pas mal. 3000 iops c'est correct pour bcp de clusters. le cpu à 80-90% c'est bizarre. tu as une idée de la taille de ta base etcd ? etcd_debugging_mvcc_db_total_size_in_bytes ? des fois c'est la compaction qui galère.
8GB c'est pas non plus super petit. t'as vérifié les etcd_mvcc_delete_total_count et etcd_mvcc_put_total_count ? voir si y'a pas un bailleur qui spamme des writes/deletes. une fragmentation peut aussi ralentir le CPU pendant la compaction ou les reads.
60% de fragmentation ! bah voilà. quand c'est fragmenté, etcd doit faire plus de travail pour lire et écrire. la compaction devient plus lourde aussi. il faut défragmenter. ça va impacter les perfs pendant l'opération mais c'est nécessaire.
ETCDCTL_API=3 etcdctl --endpoints=https://etcd-0:2379,https://etcd-1:2379,https://etcd-2:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/apiserver-etcd-client.crt \
--key=/etc/kubernetes/pki/apiserver-etcd-client.key defrag start
hm intéressant. defrag aide mais ne résout pas tout. on a éliminé le disque et la fragmentation majeure. la prochaine piste c'est le nombre de requêtes clients. qui interroge etcd le plus ? tu peux regarder les logs de l'API server ou etcd_server_client_requests_total par type de requête.
bingo ! c'est ça qui te tue. un opérateur qui fait du full list/watch toutes les 2s sur des milliers d'objets, ça pèse énormément sur etcd. surtout si le CRD est gros. faut voir s'il peut pas faire du delta sync ou avoir un informer plus intelligent.
pas de souci. les opérateurs mal codés c'est une source fréquente de perf issues sur k8s. bonne chasse à l'optimisation !
Laisser une réponse
Vous devez être connecté pour poster un message !
yo la team K8s ! on a des gros soucis de latence sur l'API server depuis quelques jours. des pics de 500ms sur les requêtes genre list pods. les métriques etcd montrent des
etcd_server_proposals_applied_totalqui chutent etetcd_server_slow_apply_totalqui monte en flèche. des idées d'où ça peut venir ? on est sur 3 nœuds etcd dédiés.