Présentation de la détection de services et DNS

Cet article explique comment GKE sur Azure interagit avec les services de noms de domaine (DNS).

Détection de services

La détection de services est le processus permettant aux charges de travail de découvrir des services sans connaître leur adresse IP. Cette section explique comment GKE sur Azure met en œuvre la détection de services et le service de DNS géré.

Kubernetes génère automatiquement des noms de service qui suivent la spécification ci-dessous :

service.namespace.svc.cluster.local

Où :

  • service : nom de votre service
  • namespace : espace de noms de votre service

Les charges de travail peuvent également accéder à des services externes, tels que example.net, à l'aide de noms DNS. Pour en savoir plus sur le comportement du DNS dans le cadre de Kubernetes, consultez la section DNS for Services and Pods (DNS pour les services et les pods).

CoreDNS

GKE sur Azure utilise CoreDNS pour résoudre les noms DNS au sein des clusters. CoreDNS s'exécute en tant que déploiement redondant et sujet au scaling, dans l'espace de noms kube-system. Le déploiement CoreDNS est associé à un service qui regroupe les pods CoreDNS et leur attribue une adresse IP unique. Le déploiement CoreDNS s'adapte à la taille et à l'utilisation du cluster.

NodeLocal DNSCache

GKE sur Azure utilise NodeLocal DNSCache pour améliorer les performances de la résolution DNS. NodeLocal DNSCache s'exécute en tant que DaemonSet sur chaque nœud de votre cluster. Lorsqu'un pod effectue une requête DNS, celle-ci est en premier lieu envoyée au cache DNS exécuté sur le même nœud. Si le cache ne peut pas résoudre la requête DNS, il la transfère alors soit :

  • à CoreDNS pour un nom interne (par exemple, foo.bar.svc.cluster.local) ;

Étape suivante