Configurazione del DNS per un cluster

Questo documento mostra come configurare il DNS per un cluster di amministrazione o un cluster utente.

La configurazione DNS per un cluster si trova in una risorsa personalizzata ClusterDNS denominato default. Si tratta di una risorsa a livello di cluster, ovvero non è associata a uno spazio dei nomi.

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

La configurazione DNS si trova nella sezione spec. Se la sezione spec è vuota o mancante, il cluster utilizza una configurazione CoreDNS predefinita di Kubernetes.

Modificare la configurazione DNS

Crea un manifest per una risorsa ClusterDNS denominata default. Compila il spec in base alle tue esigenze. 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, un dalla 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 valori 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. Ciò consente di eseguire l'override della configurazione nel seguente paese: upstreamNameservers.

Puoi utilizzare questa sezione per configurare diversi server dei nomi upstream per specifici, separatamente dai server dei nomi upstream predefiniti.

Puoi anche attivare il logging delle query per un dominio. Puoi farlo per qualsiasi specificato o 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 i server upstream vengono selezionato. Il valore predefinito è "random". I tipi supportati sono "random","round_robin" e "sequential". Tieni presente che questo criterio di ordinamento verrà applicato ai domini definiti . Consulta la documentazione su coredns per ulteriori informazioni informazioni su policy e su cosa fa ogni configurazione.

Ad esempio:

spec:
  orderPolicy: sequential