Résolution DNS interne qui galère sur kubernetes

kpierre 13/07/2024
RÉSOLU
kpierre
Auteur Actif
Avatar de kpierre
kpierre
Auteur Actif

salut la team j'ai un souci bizarre avec le dns dans mon cluster k8s les pods dans un namespace arrivent à résoudre les services du même ns sans problème mais dès que j'essaie de pinger un service dans un autre namespace genre mon-app.autre-ns.svc.cluster.local ça marche pas du tout j'ai des host not found


# exemple de pod qui galère
apiversion: v1
kind: pod
metadata:
  name: debug-pod
  namespace: mon-ns
spec:
  containers:
  - name: busybox
    image: busybox
    command: ["sh", "-c", "sleep 3600"]
  dnspolicy: clusterfirst
  dnsconfig:
    nameservers:
    - 10.96.0.10 # ip de coredns
    searches:
    - mon-ns.svc.cluster.local
    - svc.cluster.local
    - cluster.local
    options:
    - name: ndots
      value: "5"

j'ai checké les logs coredns ça a l'air ok pour les requêtes classiques mais dès que c'est cross-ns rien j'ai l'impression qu'il y a un truc qui filtre ou qui est mal configuré quelqu'un a déjà vu ça

13/07/2024 à 22:34

7 commentaires

patrick81
Membre Actif
Avatar de patrick81
patrick81
Membre Actif

yo t'as des network policies dans ton cluster ? des fois elles bloquent la résolution dns vers coredns si c'est pas explicitement autorisé entre les ns

14/07/2024 à 18:51
igauthier
Membre Actif Secouriste
Avatar de igauthier
igauthier
Membre Actif Secouriste

ouais et le domain search list de ton resolv.conf dans le pod il est comment ? si t'as pas les bons suffixes ça peut pas résoudre un fqdn partiel

15/07/2024 à 14:33
kpierre
Auteur Actif
Avatar de kpierre
kpierre
Auteur Actif

alors les network policies j'en ai bien mais j'ai mis une règle pour autoriser le trafic dns vers le ns kube-system mais ça change rien


# extrait de ma policy
- to:
    - namespaceSelector:
        matchLabels:
          kubernetes.io/metadata.name: kube-system
  ports:
    - protocol: UDP
      port: 53

et le resolv.conf dans le debug-pod il est comme je l'ai mis dans la config du pod j'ai bien les searches pour svc.cluster.local et cluster.local

16/07/2024 à 12:43
timothee05
Membre
Avatar de timothee05
timothee05
Membre

attends t'as bien spécifié dnsPolicy: ClusterFirst ? et tes pods sont dans quel vpc ou sous-réseau ? si y a des routes foireuses au niveau infra ça peut aussi impacter coredns

17/07/2024 à 06:52
patrick81
Membre Actif
Avatar de patrick81
patrick81
Membre Actif

c'est ptete un truc tout con mais la version de coredns tu l'as mise à jour récemment ? des fois y a des bugs de régression sur certaines versions avec les résolutions cross-ns surtout si t'as des custom tlds ou des trucs comme ça

18/07/2024 à 01:49
igauthier
Membre Actif Secouriste
Avatar de igauthier
igauthier
Membre Actif Secouriste

franchement j'ai déjà eu ça c'était un problème de cache dans coredns j'ai du augmenter cache size et ttl dans la configmap de coredns pour que ça se rafraîchisse bien. et check les logs de ton pod dns client pour voir si lui il voit des erreurs ptete qu'il essaie sur plusieurs serveurs avant de fail

18/07/2024 à 23:51
kpierre
Auteur Actif
Avatar de kpierre
kpierre
Auteur Actif

merci les gars ! c'était bien un mix de trucs. j'avais une policy dns qui était pas assez permissive en fait elle bloquait juste le udp sur le port 53 mais pas le tcp pour les zones plus complexes. et aussi j'ai mis à jour coredns c'était une vieille version qui avait un bug de cache connu. tout roule maintenant !

19/07/2024 à 18:59

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