8 commentaires
Salut ! 500ms c énorme pour du DNS interne. T'as checké les métriques de tes pods CoreDNS? genre CPU, mémoire, ou le nombre de requêtes traitées par seconde. Des fois c juste le CoreDNS qui est à la ramasse ou qui OOMKills. Regarde les logs avec kubectl logs -n kube-system -l k8s-app=kube-dns
Est-ce que t'as des custom resolv.conf sur tes pods? Ou des NetworkPolicies qui pourraient impacter le trafic DNS? Souvent les gens ajoutent des serveurs DNS externes et ça fout le bordel avec la résolution interne
Regarde aussi les ndots dans /etc/resolv.conf des pods. Si c'est trop haut (genre 5), chaque requête DNS va essayer plein de suffixes avant d'arriver au bon service, ça peut créer des latences. K8s met souvent ndots:5 par défaut. T'as essayé de réduire ça pour voir?
pas de custom resolv.conf j'ai vérifié. les networkpolicies sont là mais elles autorisent le trafic dns sur le port 53 vers le service coredns. pour les ndots c'est bien à 5. je vais regarder les métriques de coredns j'avais pas pensé à ça je check avec top dans les pods
Si CoreDNS est surchargé, la solution simple c'est de scale up les réplicas. Ou d'augmenter la taille du cache si tu en utilises un. Ou vérifier si un client fait pas des requêtes débiles en boucle. Le prometheus de CoreDNS donne de bonnes infos
Y'a aussi l'option du NodeLocal DNSCache. Ça met un cache DNS sur chaque node ce qui réduit la charge sur les pods CoreDNS centraux et améliore la latence. C'est un DaemonSet. Si tu peux le déployer, ça aide énormément.
Bon c'était le ndots:5 !!! En passant un pod avec ndots:1 les requêtes sont quasi instantanées. Je vais voir comment changer ça globalement pour mes deploys. Et ptete mettre NodeLocal DNSCache en plus. Merci à tous c'est top
Laisser une réponse
Vous devez être connecté pour poster un message !
Yo la team on a un gros souci de perf sur les résolutions DNS internes dans notre cluster k8s. ça rame à mort genre 500ms pour des services qui sont juste à côté. Des fois ça timeout carrément. J'ai des logs de coredns qui montrent rien de spécial mais je suis ptete passé à côté d'un truc. on a genre 500 pods et pas mal de requêtes inter-services.