7 commentaires
salut. vérifie le configmap de coredns. y'a une section forward ou stub-domains. il faut que tu y ajoutes tes serveurs dns internes pour tes domaines spécifiques. sinon coredns ne sait pas où envoyer ces requêtes
# exemple de core-dns configmap
data:
Corefile: |
.:53 {
errors
health
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
# AJOUTE CA POUR TON DOMAINE INTERNE
monentreprise.fr:53 {
errors
cache 30
forward . 192.168.1.100 # ton serveur DNS interne
}
si le corefile est bon et que le resolv.conf est bon, alors c'est ptete un souci réseau. est-ce que les pods ont bien une route vers tes serveurs dns internes ? ou est-ce qu'un firewall entre le cluster k8s et tes dns internes bloque les requêtes udp/tcp sur le port 53 ?
check aussi tes NetworkPolicies. si t'en as qui sont un peu trop agressives elles peuvent empêcher tes pods de communiquer avec des IPs en dehors du cluster même pour du DNS. un test simple c'est de désactiver temporairement les NP pour un pod de test et voir si ça résout
ok alors le Corefile n'avait rien pour monentreprise.fr. j'ai ajouté la stanza comme suggéré par user2. après un restart des coredns pods toujours le même souci. le resolv.conf des pods est bon il pointe bien sur 10.96.0.10 (le service coredns).
alors si le Corefile est bon et toujours rien, ça sent le firewall ou la route. depuis un pod avec le problème, fais un nc -uzv 192.168.1.100 53 (ton DNS interne). si ça connecte pas t'as un souci réseau sous-jacent. et vérifie les logs de tes DNS internes, voient-ils passer des requêtes depuis les IPs de tes pods ?
AAAAAAH ! c'était bien le firewall sur l'edge de notre datacenter qui bloquait tout le trafic UDP/53 sortant du subnet k8s vers nos DNS internes. j'ai demandé l'ouverture et maintenant ça marche impeccable. merci à tous pour la chasse au bug ! galère les firewalls invisibles.
Laisser une réponse
Vous devez être connecté pour poster un message !
bonjour à tous. j'ai un souci hyper relou sur notre cluster k8s (kubeadm 1.25). les pods arrivent à résoudre les noms de services k8s sans problème et aussi les domaines publics (google.com etc). par contre ils sont incapables de résoudre nos noms de domaines internes genre intranet.monentreprise.fr. ça marche très bien depuis les nodes eux-mêmes. on utilise core-dns par défaut. des idées sur où chercher ?