In diesem Dokument wird gezeigt, wie Sie DNS-Anbieteroptionen (Domain Name System) für Google Distributed Cloud 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. Füllen Sie die spec aus, um die gewünschten Ressourceneinstellungen zu konfigurieren. 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.yamlErsetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Clusters.
ClusterDNS-Ressource ansehen
Führen Sie den folgenden Befehl aus, um die ClusterDNS-Ressource anzusehen:
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yamlErsetzen 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, mit dem die DNS-Auflösung für Domains konfiguriert wird, die von globalen Google APIs und Diensten verwendet werden. Dieses Feld akzeptiert die folgenden Werte:
default: Standardmäßig werden bei der DNS-Auflösung globale Google API-Domains den Standard-IP-Adressen zugeordnet. Der Cluster passt die DNS-Auflösung für globale Google API-Domains nicht an. Weitere Informationen finden Sie unter IP-Adressen für die Standarddomains. Wenn Sie im FeldgoogleAccesskeinen Wert angeben, verwendet das Systemdefault.private: Die DNS-Auflösung für globale Google API-Domains wird den IP Adressen zugeordnet, die vonprivate.googleapis.comverwendet werden.restricted: Die DNS-Auflösung für globale Google API-Domains wird den IP Adressen zugeordnet, die vonrestricted.googleapis.comverwendet werden.
Das folgende Beispiel zeigt, wie Sie die DNS-Auflösung so festlegen, dass private.googleapis.com verwendet wird:
spec:
googleAccess: private
Weitere Informationen finden Sie unter Privaten Google-Zugriff für lokale Hosts konfigurieren.
spec.orderPolicy
Das Feld spec.orderPolicy ist ein String. Verwenden Sie dieses Feld, um die Reihenfolgerichtlinie anzugeben, nach der vorgelagerte Server ausgewählt werden.
- Der Standardwert ist
random. - Unterstützte Typen sind
random,round_robinundsequential. - Diese Reihenfolgerichtlinie gilt auch für definierte Domains.
Weitere Informationen zu policy und den Auswirkungen der einzelnen Konfigurationen finden Sie in der CoreDNS-Dokumentation.
Hier ein Beispiel für eine spec.orderPolicy-Konfiguration:
spec: orderPolicy: sequential