Configurazione del DNS per un cluster

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

La configurazione DNS per un cluster è contenuta in una risorsa personalizzata ClusterDNS denominata default. Si tratta di una risorsa a livello di cluster, ovvero non ha 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 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 file manifest per una risorsa ClusterDNS denominata default. Compila spec come desiderato. 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
      - serverIP: 203.0.113.1
      - serverIP: 203.0.113.2
        serverPort: 54
  googleAccess: private

Salva il file manifest in un file denominato my-dns.yaml e applica la risorsa al cluster:

kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml

Specifiche 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. Le richieste per i domini non cluster vengono inoltrate a questo insieme di server per impostazione predefinita. 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 a monte.

spec.domains

Configurazione per domini specifici. Ciò consente di eseguire l'override della configurazione in upstreamNameservers.

Puoi utilizzare questa sezione per configurare diversi server dei nomi upstream per domini specifici, 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 si risolvano con indirizzi IP con accesso privato, impostalo su "private". Se vuoi che i domini Google si risolvano con indirizzi IP ad accesso limitato, impostali su restricted. Se non vuoi usufruire di trattamenti speciali per i domini Google, imposta questo valore su default o rimuovilo. Per ulteriori informazioni, consulta Configurazione dell'accesso privato Google per gli host on-premise.

Ad esempio:

spec:
  googleAccess: private