DNS für einen Cluster konfigurieren

In diesem Dokument wird gezeigt, wie Sie DNS-Anbieteroptionen (Domain Name System) für Google Distributed Cloud Connected konfigurieren. Die DNS-Konfiguration für einen Cluster wird in einer benutzerdefinierten ClusterDNS-Ressource mit dem Namen default gespeichert. Diese Ressource ist clusterübergreifend. Das heißt, sie hat keinen Namespace. Die benutzerdefinierte ClusterDNS-Ressource gilt für alle Clustertypen.

ClusterDNS-Ressource erstellen

Erstellen Sie ein Manifest für eine ClusterDNS-Ressource mit dem Namen default. Geben Sie im Feld spec die gewünschten Ressourceneinstellungen an. Beispiel:

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.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 54
  googleAccess: default

Führen Sie den folgenden Befehl aus, um das Manifest in einer Datei mit dem Namen my-dns.yaml zu speichern und die Ressource auf den Cluster anzuwenden:

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

Ersetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Clusters.

ClusterDNS-Ressource ansehen

Führen Sie den folgenden Befehl aus, um die ClusterDNS-Ressource aufzurufen:

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

Ersetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Clusters.

ClusterDNS-Spezifikation

In den folgenden Abschnitten werden die Teile der benutzerdefinierten ClusterDNS-Ressourcendefinition beschrieben, die Sie zum Konfigurieren von DNS für Ihre Cluster verwenden. Sie können die ClusterDNS-Ressource für einen Cluster jederzeit aktualisieren.

spec.upstreamNameservers

Verwenden Sie das Feld spec.upstreamNameservers, um Ihre standardmäßigen vorgelagerten Nameserver mit einem Array von Objekten anzugeben. Jedes Objekt hat eine Server-IP-Adresse und optional einen Serverport. Der Standardwert für den Serverport ist 53. Anfragen für Nicht-Cluster-Domains werden standardmäßig an diese Gruppe von Servern weitergeleitet.

Hier ein Beispiel für eine upstreamNameservers-Konfiguration:

spec:
  upstreamNameservers:
  - serverIP: 8.8.8.8
  - serverIP: 1.2.3.4
    serverPort: 54

Wenn Sie für upstreamNameservers keine Werte angeben, verwendet der DNS-Anbieter die Datei /etc/resolv.conf auf dem Knoten, um die Liste der vorgelagerten Nameserver zu ermitteln.

spec.domains

Verwenden Sie das Feld spec.domains, um verschiedene vorgelagerte Nameserver für bestimmte Domains zu konfigurieren. Diese domainspezifischen Nameserver-Einstellungen überschreiben die Konfiguration in upstreamNameservers.

Sie können auch das Abfrage-Logging für eine Domain aktivieren. Sie können das Abfrage-Logging für jede angegebene Domain oder die Cluster-Domain cluster.local aktivieren.

Hier ein Beispiel für eine spec.domains-Konfiguration:

spec:
  domains:
  - name: altostrat.com
    nameservers:
    - serverIP: 198.51.100.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 50000
  - name: cluster.local
    queryLogging: true

spec.googleAccess

Das Feld spec.googleAccess ist ein String, der angibt, wie Google-Domains behandelt werden sollen. googleAccess-Werte geben das folgende Verhalten an:

  • default: Keine spezielle Behandlung für Google-Domains. Das Entfernen des Felds googleAccess hat denselben Effekt.

  • private: Google-Domains werden nur in IP-Adressen mit privatem Zugriff aufgelöst.

  • restricted: Google-Domains werden nur in IP-Adressen mit eingeschränktem Zugriff aufgelöst.

Im folgenden Beispiel werden Google-Domains nur in IP-Adressen mit privatem Zugriff aufgelöst:

spec:
  googleAccess: private

Weitere Informationen finden Sie unter Privaten Google-Zugriff für lokale Hosts konfigurieren.