CoreDNS qui résout pas mes services externes sur K8s

trossi 24/04/2025
RÉSOLU
trossi
Auteur
Avatar de trossi
trossi
Auteur

yo la team ! on est sur k8s et notre coredns il fait la gueule. il résout nickel les services internes (cluster.local) mais pour tout ce qui est externe, genre google.com ou nos propres services derrière un Load Balancer externe, rien. c'est le silence radio. j'ai checké les logs des pods coredns et je vois des timeouts ou des SERVFAIL. ptete un souci de config dans le corefile ?

# coredns configmap (simplifié)
apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
24/04/2025 à 05:33

10 commentaires

jacqueline-gaudin
Membre Actif Secouriste
Avatar de jacqueline-gaudin
jacqueline-gaudin
Membre Actif Secouriste

salut ! le forward . /etc/resolv.conf c'est la base, donc ça devrait marcher. t'as vérifié que le /etc/resolv.conf des pods coredns pointe bien vers des serveurs DNS externes valides et pas juste l'IP du service kube-dns lui-même ? des fois ça boucle.

25/04/2025 à 02:05
gvaillant
Membre Actif Secouriste
Avatar de gvaillant
gvaillant
Membre Actif Secouriste

aussi check la commande kubectl logs -n kube-system -l k8s-app=kube-dns pour voir les logs précis quand tu tentes une résolution externe. et regarde les événements de tes pods coredns, ptete des oomkill ou autre joyeusetés.

26/04/2025 à 01:52
jacqueline-gaudin
Membre Actif Secouriste
Avatar de jacqueline-gaudin
jacqueline-gaudin
Membre Actif Secouriste

et t'aurais pas des externalNamespaces configurés quelque part qui écraseraient le comportement du forward ? ou une policy dns sur tes pods qui serait en None ou autre chose de bizarre

Modifié le 23/05/2026 à 16:20
josephine86
Membre Actif
Avatar de josephine86
josephine86
Membre Actif

check aussi tes network policies sur le namespace kube-system. si une règle bloque le trafic DNS sortant des pods coredns vers l'extérieur, ça expliquerait les timeouts. faut une règle explicite pour autoriser le port 53 UDP/TCP.

Modifié le 23/05/2026 à 16:20
gvaillant
Membre Actif Secouriste
Avatar de gvaillant
gvaillant
Membre Actif Secouriste

et pour la ligne forward . /etc/resolv.conf, t'es sûr que le /etc/resolv.conf dans l'image coredns est bien celui de ton nœud hôte ou un truc qui marche ? des fois dans des environnements conteneurisés ça peut être un peu tricky l'héritage du resolv.conf

Modifié le 23/05/2026 à 16:20
jacqueline-gaudin
Membre Actif Secouriste
Avatar de jacqueline-gaudin
jacqueline-gaudin
Membre Actif Secouriste

t'as des règles de firewall sur les noeuds k8s qui pourraient bloquer le trafic DNS sortant (port 53 UDP/TCP) vers l'internet ? c'est con mais ça arrive.

29/04/2025 à 14:39
josephine86
Membre Actif
Avatar de josephine86
josephine86
Membre Actif

et si t'utilises istio, les ServiceEntry peuvent override les résolutions DNS. t'aurais pas un truc qui redirige le trafic DNS vers un autre service entry ou un hôte non résolvable ?

Modifié le 23/05/2026 à 16:20
gvaillant
Membre Actif Secouriste
Avatar de gvaillant
gvaillant
Membre Actif Secouriste

les coredns metrics prometheus (sur le port 9153) peuvent te donner des infos sur les échecs de résolution et les requêtes mises en cache. ça peut aider à débugger. coredns_dns_response_code_count_total par exemple.

Modifié le 23/05/2026 à 16:20
jacqueline-gaudin
Membre Actif Secouriste
Avatar de jacqueline-gaudin
jacqueline-gaudin
Membre Actif Secouriste

un dernier truc t'as essayé de remplacer forward . /etc/resolv.conf par des DNSs fixes que tu sais qui marchent, genre forward . 8.8.8.8 1.1.1.1 ? juste pour isoler le problème du resolv.conf.

Modifié le 23/05/2026 à 16:20
trossi
Auteur
Avatar de trossi
trossi
Auteur

bordel merci la team c'était un combo de trucs ! le forward . /etc/resolv.conf était bien là mais en fait l'image docker de coredns avait un resolv.conf un peu moisi qui pointait sur lui-même lol. j'ai mis forward . 8.8.8.8 1.1.1.1 en dur et ça marche. en plus j'avais une network policy qui bloquait le 53 UDP en sortie sur le namespace kube-system. bien vu pour la network policy !

Modifié le 23/05/2026 à 16:20

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