Questo documento mostra come configurare il DNS per un cluster di amministrazione o un cluster utente.
La configurazione DNS di un cluster è contenuta in una risorsa personalizzata ClusterDNS
chiamata default
. Si tratta di una risorsa a livello di cluster, ovvero non è con nome.
Visualizza la risorsa ClusterDNS
Per visualizzare la risorsa ClusterDNS:
kubectl --kubeconfig CLUSTER_KUBECONFIG get clusterdns default --output yaml
Sostituisci CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster.
La configurazione DNS si trova nella sezione spec
. Se la sezione spec
è vuota
o mancante, il cluster utilizza una configurazione predefinita di Kubernetes CoreDNS.
Modificare la configurazione DNS
Crea un manifest per una risorsa ClusterDNS denominata default
. Compila spec
come preferisci. Ad esempio:
apiVersion: networking.gke.io/v1alpha1 kind: ClusterDNS metadata: name: default spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 8.8.4.4 domains: - name: altostrat.com nameservers: - serverIP: 198.51.100.0.1 - name: my-own-personal-domain.com nameservers: - serverIP: 203.0.113.1 - serverIP: 203.0.113.2 serverPort: 54 googleAccess: private
Salva il manifest in un file denominato my-dns.yaml
e applica la risorsa al
cluster:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml
La specifica ClusterDNS
spec.upstreamNameservers
Un array di oggetti, ognuno dei quali ha un indirizzo IP del server e, facoltativamente, una porta del server. Il valore predefinito per la porta del server è 53.
I server dei nomi upstream predefiniti. Per impostazione predefinita, le richieste per i domini non cluster vengono inoltrate a questo insieme di server. Ad esempio:
spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 1.2.3.4 serverPort: 54
Se non specifichi alcun valore per upstreamNameservers
, il provider DNS utilizza il file /etc/resolve.conf
sul nodo per trovare l'elenco dei server dei nomi upstream.
spec.domains
Configurazione per domini specifici. In questo modo è possibile eseguire l'override della configurazione
in upstreamNameservers
.
Puoi utilizzare questa sezione per configurare server dei nomi upstream diversi per determinati domini, separatamente dai server dei nomi upstream predefiniti.
Puoi anche attivare il logging delle query per un dominio. Puoi eseguire questa operazione per qualsiasi dominio specificato o per il dominio del cluster cluster.local.
Ad esempio:
spec: domains: - name: altostrat.com nameservers: - serverIP: 203.0.113.1 - name: my-own-personal-domain.com nameservers: - serverIP: 198.51.100.1 - serverIP: 198.51.100.2 serverPort: 50000 - name: cluster.local queryLogging: true
spec.googleAccess
Stringa. Se vuoi che i domini Google vengano risolti in indirizzi IP con accesso privato, imposta questo valore su "private"
. Se vuoi che i domini Google vengano risolti in indirizzi IP con accesso limitato, imposta questo valore su restricted
. Se non vuoi un trattamento speciale per i domini Google, imposta questo valore su default
o rimuovilo. Per ulteriori informazioni, consulta la pagina sulla configurazione dell'accesso privato Google per gli host on-premise.
Ad esempio:
spec: googleAccess: private
spec.orderPolicy
Stringa. Se vuoi specificare il criterio di ordinamento in base al quale vengono selezionati i server upstream. Il valore predefinito è "random"
. I tipi supportati sono "random"
,"round_robin"
e "sequential"
. Tieni presente che questo criterio di ordinamento si applica anche ai domini definiti. Per ulteriori informazioni su policy
e sulle funzionalità di ciascuna configurazione, consulta la documentazione di coredns.
Ad esempio:
spec: orderPolicy: sequential