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 è contenuta in una risorsa personalizzata ClusterDNS denominata default. Si tratta di una risorsa a livello di cluster, ovvero non è 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 file kubeconfig del cluster.

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

Modificare la configurazione DNS

Crea un manifest per una risorsa ClusterDNS denominata default. Compila i campi spec come vuoto. 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 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 server e, facoltativamente, una porta 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 upstream.

spec.domains

Configurazione per domini specifici. In questo modo è possibile eseguire l'override della configurazione in upstreamNameservers.

Puoi utilizzare questa sezione per configurare diversi server dei nomi a monte 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 risolvano gli indirizzi IP con accesso privato, impostalo su "private". Se vuoi che i domini Google risolvano gli indirizzi IP ad accesso limitato, imposta questa opzione su restricted. Se non vuoi ricevere alcun trattamento speciale per i domini Google, imposta questo valore su default o rimuovilo. Per saperne di più, vedi Configurare l'accesso privato Google per gli host on-premise.

Ad esempio:

spec:
  googleAccess: private