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 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 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
- 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.