Questo argomento descrive in che modo GKE su AWS interagisce con i servizi di nomi di dominio (DNS) sia nel tuo VPC (Virtual Private Cloud) AWS sia nei cluster.
DNS VPC AWS
Questa sezione descrive come configurare un VPC per GKE su AWS.
Configurazione del DNS VPC
GKE su AWS supporta una serie di configurazioni DNS nel tuo VPC AWS. Configura le impostazioni DNS del VPC quando crei un insieme di opzioni DHCP. Per ulteriori informazioni, vedi Supporto DNS per il VPC.
Puoi configurare le seguenti opzioni:
- Nomi host DNS
- Specifica se le istanze EC2 con indirizzi IP pubblici ottengono i nomi host DNS pubblici corrispondenti. Imposta questo valore utilizzando il campo
enableDNSHostnames
nel set di opzioni DHCP del VPC. Per ulteriori informazioni, vedi Nomi host DNS VPC e Set di opzioni DHCP per la tua VPC. - Nomi host DNS EC2
- Determina se le istanze EC2 ricevono un nome host DNS predefinito o un nome host DNS personalizzato.
- Server DNS
- Se il set di opzioni DHCP del VPC utilizza il server DNS AWS Route53
(con l'opzione
AmazonProvidedDNS
) o un server DNS ospitato.
Utilizzo del DNS ospitato
Per utilizzare un DNS ospitato, i gruppi di sicurezza del control plane e del node pool devono consentire il traffico in uscita sulla porta TCP e UDP 53.
Configurazioni DNS VPC supportate
La tabella seguente include le configurazioni DNS supportate da GKE su AWS:
Attiva nomi host DNS | Nomi host DNS EC2 | Server DNS | Supportata? |
---|---|---|---|
true |
Predefinito | AWS Route53 | Sì |
false |
Predefinito | AWS Route53 | Sì |
true |
Personalizzato | AWS Route53 | Sì |
false |
Personalizzato | AWS Route53 | Sì |
true |
Personalizzato | Host | Sì |
false |
Personalizzato | Host | Sì |
true |
Predefinito | Host | No |
false |
Predefinito | Host | No |
Service Discovery
Il rilevamento dei servizi è il processo in cui i workload rilevano i servizi senza conoscere l'indirizzo IP del servizio. Questa sezione descrive in che modo GKE su AWS implementa il service discovery e il DNS gestito.
Kubernetes genera automaticamente nomi di servizio che utilizzano la seguente specifica:
service.namespace.svc.cluster.local
Dove:
service
: il nome del servizionamespace
: lo spazio dei nomi del tuo servizio
I carichi di lavoro accedono anche a servizi esterni, ad esempio example.net
, utilizzando i nomi DNS. Per ulteriori 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 deployment scalato e ridondante nello spazio dei nomi kube-system
. Il deployment di CoreDNS ha un
servizio che raggruppa i pod CoreDNS
e assegna loro un unico indirizzo IP. Il deployment di CoreDNS viene scalato in base alle dimensioni e all'utilizzo del cluster.
NodeLocal DNSCache
GKE su AWS utilizza NodeLocal DNSCache per migliorare le prestazioni di ricerca DNS. NodeLocal DNSCache viene eseguito come DaemonSet su ogni nodo del cluster. Quando un pod effettua una richiesta DNS, la richiesta viene inviata prima alla cache DNS sullo stesso nodo. Se la cache non riesce a risolvere la richiesta DNS, la inoltra 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
Passaggi successivi
- Scopri di più sul supporto DNS per il tuo VPC di AWS.
- Per una panoramica di come viene utilizzato il DNS nei cluster Kubernetes, consulta DNS per servizi e pod.