Résolution DNS interne qui galère sur kubernetes

Posté par kpierre le 13/07/2024
RÉSOLU

kpierre

Membre depuis le 07/05/2019

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

Commentaires

patrick81

Membre depuis le 16/06/2019

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

igauthier

Membre depuis le 23/05/2019

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

kpierre

Membre depuis le 07/05/2019

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

timothee05

Membre depuis le 14/12/2020

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

patrick81

Membre depuis le 16/06/2019

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

igauthier

Membre depuis le 23/05/2019

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

kpierre

Membre depuis le 07/05/2019

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 !

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