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

Cet article explique comment GKE sur AWS interagit avec les services de nom de domaine (DNS) sur votre cloud privé virtuel (VPC) AWS et vos clusters.

DNS pour un cloud privé virtuel (VPC) AWS

Cette section explique comment configurer un VPC pour GKE sur AWS.

Configurer le DNS pour un cloud privé virtuel VPC

GKE sur AWS est compatible avec diverses configurations DNS dans votre VPC AWS. Vous configurez les paramètres DNS de votre VPC lorsque vous créez un ensemble d'options DHCP. Pour en savoir plus, consultez la page Compatibilité DNS pour votre VPC.

Vous pouvez configurer les options suivantes :

Noms d'hôte DNS
Définit si les instances EC2 avec des adresses IP publiques obtiennent les noms d'hôte DNS publics correspondants. Vous définissez cette valeur à l'aide du champ enableDNSHostnames de l'ensemble d'options DHCP de votre VPC. Pour en savoir plus, consultez les pages Noms d'hôte DNS VPC et Ensembles d'options DHCP pour votre VPC.
Noms d'hôte DNS EC2
Ce paramètre détermine si les instances EC2 reçoivent un nom d'hôte DNS par défaut ou un nom d'hôte DNS personnalisé.
Serveur DNS
Indique si l'ensemble d'options DHCP de votre VPC utilise le serveur DNS AWS Route53 (avec l'option AmazonProvidedDNS) ou un serveur DNS hébergé.

Utiliser un DNS hébergé

Pour utiliser un DNS hébergé, vos groupes de sécurité de plan de contrôle et de pool de nœuds doivent autoriser le trafic sortant sur le port TCP et UDP 53.

Configurations DNS VPC compatibles

Le tableau suivant inclut les configurations DNS compatibles avec GKE sur AWS:

Activer les noms d'hôte DNS Noms d'hôte DNS EC2 Serveur DNS Compatible ?
true Par défaut AWS Route53 Oui
false Par défaut AWS Route53 Oui
true personnalisée ; AWS Route53 Oui
false personnalisée ; AWS Route53 Oui
true personnalisée ; Hébergé Oui
false personnalisée ; Hébergé Oui
true Par défaut Hébergé Non
false Par défaut Hébergé Non

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 décrit comment GKE sur AWS met en œuvre la détection de services et le 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 AWS utilise CoreDNS pour résoudre les noms DNS dans les clusters. CoreDNS s'exécute en tant que déploiement redondant et ajusté 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 AWS 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 d'abord envoyée au cache DNS sur le même nœud. Si le cache ne peut pas résoudre la requête DNS, il la transfère à l'une des sources suivantes:

  • à CoreDNS pour un nom interne (par exemple, foo.bar.svc.cluster.local) ;
  • au serveur DNS Amazon pour un nom externe (par exemple, example.net).

Étapes suivantes