Configurazione del DNS per un cluster

Questo documento mostra come configurare le opzioni del provider DNS (Domain Name System) per i cluster Anthos su Bare Metal. La configurazione DNS per un cluster è archiviata in una risorsa personalizzata ClusterDNS denominata default. Questa risorsa copre tutto il cluster, ovvero non dispone di spazio dei nomi. La risorsa personalizzata ClusterDNS si applica a tutti i tipi di cluster.

Crea la risorsa ClusterDNS

Creare un manifest per una risorsa ClusterDNS denominata default. Compila i campi 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
      - 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 KUBECONFIG apply -f my-dns.yaml

Sostituisci KUBECONFIG con il percorso del file kubeconfig del cluster.

Visualizza la risorsa ClusterDNS

Per visualizzare la risorsa ClusterDNS:

kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml

Sostituisci KUBECONFIG con il percorso del file kubeconfig del cluster.

Specifiche ClusterDNS

Le seguenti sezioni descrivono le parti della definizione di risorsa personalizzata ClusterDNS utilizzata per configurare il DNS per i cluster. Puoi aggiornare la risorsa ClusterDNS per un cluster in qualsiasi momento.

spec.upstreamNameservers

Specifica i server dei nomi a monte predefiniti con un array di oggetti, ciascuno dei quali ha un indirizzo IP del server e facoltativamente una porta del server. Il valore predefinito per la porta del server è 53. Le richieste per i domini non cluster vengono inoltrate per impostazione predefinita a questo array di indirizzi di server.

Ecco un esempio di configurazione di upstreamNameservers:

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. Utilizza questa sezione per configurare diversi server dei nomi a monte per determinati domini. Queste impostazioni del server dei nomi specifica del dominio hanno la precedenza sulla configurazione in upstreamNameservers.

Puoi anche attivare il logging delle query per un dominio. Puoi abilitare il logging delle query per qualsiasi dominio specificato o per il 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

Enumerazione (private, restricted o default). Specifica come trattare i domini Google. googleAccess valori specificano il seguente comportamento:

  • default: nessun trattamento speciale per i domini Google. La rimozione del campo googleAccess ha lo stesso effetto.

  • private: risolve i domini Google solo per gli indirizzi IP con accesso privato.

  • restricted: risolve i domini Google solo per gli indirizzi IP ad accesso limitato.

L'esempio di impostazione seguente consente di risolvere i domini Google solo per gli indirizzi IP ad accesso privato:

spec:
  googleAccess: private

Per saperne di più, consulta Configurazione dell'accesso privato Google per gli host on-premise.