Cet article décrit comment GKE sur AWS interagit avec les services de noms de domaine (DNS) sur votre cloud privé virtuel (VPC) et vos clusters AWS.
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 prend en charge 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é | AWS Route53 | Oui |
false |
Personnalisé | AWS Route53 | Oui |
true |
Personnalisé | Hébergé | Oui |
false |
Personnalisé | 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 explique comment GKE sur AWS 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 servicenamespace
: 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 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 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 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
) ; - au serveur DNS Amazon pour un nom externe (par exemple,
example.net
).
Étape suivante
- En savoir plus sur la compatibilité DNS pour votre VPC sur AWS.
- Pour obtenir une présentation de l'utilisation du DNS dans les clusters Kubernetes, consultez la page consacrée au DNS pour les services et les pods.