Problème de résolution DNS vers des services internes depuis un pod k8s

bertrand-bernard 03/11/2025
RÉSOLU
bertrand-bernard
Auteur Actif
Avatar de bertrand-bernard
bertrand-bernard
Auteur Actif

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 ?

# depuis un pod
kubectl exec -it my-pod -- nslookup intranet.monentreprise.fr
;; connection timed out; no servers could be reached
03/11/2025 à 09:33

7 commentaires

suzanne-faivre
Membre Actif
Avatar de suzanne-faivre
suzanne-faivre
Membre Actif

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
    }
04/11/2025 à 08:03
mjacques
Membre Actif
Avatar de mjacques
mjacques
Membre Actif

ouais user2 a raison. et regarde aussi si les pods ont bien le fichier /etc/resolv.conf qui pointe vers le service coredns du cluster. des fois des CNI un peu custom peuvent changer ça ou des images docker trop minimalistes

05/11/2025 à 05:00
jgimenez
Membre Actif Rédacteur
Avatar de jgimenez
jgimenez
Membre Actif Rédacteur

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 ?

06/11/2025 à 04:23
emile-lacombe
Membre Actif
Avatar de emile-lacombe
emile-lacombe
Membre Actif

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

07/11/2025 à 02:49
bertrand-bernard
Auteur Actif
Avatar de bertrand-bernard
bertrand-bernard
Auteur Actif

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).

07/11/2025 à 22:51
tmaillard
Membre Actif Secouriste
Avatar de tmaillard
tmaillard
Membre Actif Secouriste

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 ?

08/11/2025 à 22:17
bertrand-bernard
Auteur Actif
Avatar de bertrand-bernard
bertrand-bernard
Auteur Actif

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.

09/11/2025 à 20:56

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