Service Discovery e DNS

Questo argomento descrive in che modo GKE su AWS interagisce con i servizi di nomi di dominio (DNS) sia nel tuo Virtual Private Cloud (VPC) AWS sia nei cluster.

DNS VPC AWS

Questa sezione descrive come configurare un virtual private cloud (VPC) AWS per GKE su AWS.

Configurazione del DNS VPC

GKE su AWS supporta una serie di configurazioni DNS nel tuo VPC AWS. Configuri le impostazioni DNS del VPC quando crei un set di opzioni DHCP. Per saperne di più, consulta Supporto DNS per la tua 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 saperne di più, consulta 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 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:

Attiva i nomi host DNS Nomi host DNS EC2 Server DNS Supportata?
true Predefinito AWS Route53
false Predefinito AWS Route53
true Personalizzato AWS Route53
false Personalizzato AWS Route53
true Personalizzato Host
false Personalizzato Host
true Predefinito Host No
false Predefinito Host No

Service Discovery

Il Service Discovery è il processo in cui i workload rilevano i servizi senza conoscere il loro 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: il nome del servizio
  • namespace: lo spazio dei nomi del servizio
  • zone: la zona AWS del tuo servizio

I workload accedono anche a servizi esterni, ad esempio example.net, utilizzando i nomi DNS. Per saperne di più 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, questa 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

Calico

GKE su AWS utilizza Calico per stabilire il routing BGP tra i nodi del cluster.

Passaggi successivi