Questo argomento descrive come GKE su AWS interagisce con i DNS (Domain Name Services) sia su AWS Virtual Private Cloud (VPC) che sui cluster.
DNS VPC AWS
Questa sezione descrive come configurare un VPC (Virtual Private Cloud) AWS per GKE su AWS.
Configurazione del DNS VPC
GKE su AWS supporta una varietà di configurazioni DNS nel tuo VPC AWS. Puoi configurare le impostazioni DNS del VPC quando crei un set di opzioni DHCP. Per maggiori informazioni, consulta la pagina relativa al supporto DNS per il tuo VPC.
Puoi configurare le seguenti opzioni:
- Nomi host DNS
- Imposta se per le istanze EC2 con indirizzi IP pubblici corrispondono i nomi host DNS pubblici corrispondenti. Per impostare questo valore, utilizza il campo
enableDNSHostnames
nel set di opzioni DHCP del tuo VPC. Per maggiori informazioni, consulta Nomi host DNS VPC e Set di opzioni DHCP per il tuo VPC. - Nomi host DNS EC2
- Questa opzione consente di stabilire se le istanze EC2 ricevono un nome host DNS predefinito o un nome host DNS personalizzato.
- Server DNS
- Indica se il set di opzioni DHCP del tuo VPC utilizza il server DNS AWS Route53
(con l'opzione
AmazonProvidedDNS
) o un server DNS ospitato.
Configurazioni DNS VPC supportate
La tabella seguente include le configurazioni DNS supportate da GKE su AWS:
Abilita i nomi host DNS | Nomi host DNS EC2 | Server DNS | Supportato? |
---|---|---|---|
true |
Predefinito | Route53 AWS | Sì |
false |
Predefinito | Route53 AWS | Sì |
true |
Valore personalizzato | Route53 AWS | Sì |
false |
Valore personalizzato | Route53 AWS | Sì |
true |
Valore personalizzato | Host | Sì |
false |
Valore personalizzato | Host | Sì |
true |
Predefinito | Host | No |
false |
Predefinito | Host | No |
Service Discovery
Il rilevamento dei servizi è il processo in cui i carichi di lavoro rilevano servizi senza conoscerne l'indirizzo IP. Questa sezione descrive in che modo GKE su AWS implementa Service Discovery e il DNS gestito.
Kubernetes genera automaticamente nomi di servizio che utilizzano la seguente specifica:
service.namespace.svc.zone
Dove:
service
: nome del servizionamespace
: lo spazio dei nomi del tuo serviziozone
: la zona AWS del tuo servizio
I carichi di lavoro accedono anche a servizi esterni, ad esempio example.net
,
utilizzando i nomi DNS. Per maggiori informazioni sul comportamento del DNS in Kubernetes, consulta
DNS per servizi e pod.
CoreDNS
GKE su AWS utilizza CoreDNS per risolvere i nomi DNS all'interno dei cluster. CoreDNS viene eseguito come un deployment ridondante e scalato nello spazio dei nomi kube-system
. Il deployment di CoreDNS include un servizio che raggruppa i pod CoreDNS e fornisce loro un singolo indirizzo IP. Il deployment CoreDNS scala
in base alle dimensioni e all'utilizzo del cluster.
NodeLocal DNSCache
GKE su AWS utilizza NodeLocal DNSCache per migliorare le prestazioni della ricerca DNS. NodeLocal DNSCache viene eseguito come DaemonSet su ciascun nodo nel cluster. Quando un pod invia una richiesta DNS, la richiesta viene inviata prima alla cache DNS sullo stesso nodo. Se la cache non è in grado di risolvere la richiesta DNS, inoltra la richiesta a:
- CoreDNS per un nome interno, ad esempio
foo.bar.svc.cluster.local
- Il
server DNS Amazon,
per un nome esterno, ad esempio
example.net
Calico
GKE su AWS utilizza Calico per stabilire il routing BGP tra i nodi cluster.
Passaggi successivi
- Ulteriori informazioni sul supporto DNS per il tuo VPC di AWS.
- Per una panoramica dell'utilizzo del DNS nei cluster Kubernetes, consulta DNS per servizi e pod.