In diesem Dokument wird gezeigt, wie Sie das DNS für einen Administrator- oder Nutzercluster konfigurieren.
Die DNS-Konfiguration für einen Cluster wird in einer benutzerdefinierten ClusterDNS-Ressource mit dem Namen default
gespeichert. Dies ist eine clusterweite Ressource; sie hat also keinen Namespace.
ClusterDNS-Ressource ansehen
So rufen Sie die ClusterDNS-Ressource auf:
kubectl --kubeconfig CLUSTER_KUBECONFIG get clusterdns default --output yaml
Ersetzen Sie CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Clusters.
Die DNS-Konfiguration befindet sich im Abschnitt spec
. Wenn der Abschnitt spec
leer ist oder fehlt, verwendet der Cluster eine Kubernetes CoreDNS-Standardkonfiguration.
DNS-Konfiguration ändern
Erstellen Sie ein Manifest für eine ClusterDNS-Ressource mit dem Namen default
. Füllen Sie spec
nach Bedarf aus. 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.0.1 - name: my-own-personal-domain.com nameservers: - serverIP: 203.0.113.1 - serverIP: 203.0.113.2 serverPort: 54 googleAccess: private
Speichern Sie das Manifest in einer Datei mit dem Namen my-dns.yaml
und wenden Sie die Ressource auf den Cluster an:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml
ClusterDNS-Spezifikation
spec.upstreamNameservers
Ein Array von Objekten mit jeweils einer Server-IP-Adresse und optional einem Serverport. Der Standardwert für den Serverport ist 53.
Die standardmäßigen vorgelagerten Nameserver. Anfragen für Nicht-Cluster-Domains werden standardmäßig an diese Gruppe von Servern weitergeleitet. Beispiel:
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/resolve.conf
auf dem Knoten, um die Liste der vorgelagerten Nameserver zu ermitteln.
spec.domains
Konfiguration für bestimmte Domains. Dadurch wird die Konfiguration in upstreamNameservers
überschrieben.
Sie können in diesem Abschnitt verschiedene vorgelagerte Nameserver für bestimmte Domains getrennt von den standardmäßigen vorgelagerten Nameservern konfigurieren.
Sie können auch das Abfrage-Logging für eine Domain aktivieren. Sie können dies für jede angegebene Domain oder die Clusterdomain „cluster.local“ tun.
Beispiel:
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
String. Wenn Google-Domains zu IP-Adressen mit privatem Zugriff aufgelöst werden sollen, legen Sie für dieses Feld "private"
fest. Wenn Google Domains zu IP-Adressen mit eingeschränktem Zugriff aufgelöst werden sollen, legen Sie für dieses Feld restricted
fest. Wenn Sie keine besondere Behandlung für Google-Domains wünschen, legen Sie default
fest oder entfernen Sie dieses Feld. Weitere Informationen finden Sie unter Privaten Google-Zugriff für lokale Hosts konfigurieren.
Beispiel:
spec: googleAccess: private
spec.orderPolicy
String. Wenn Sie die Sortierrichtlinie angeben möchten, nach der vorgelagerte Server ausgewählt werden. Standardwert ist "random"
. Unterstützte Typen sind "random"
,"round_robin"
und "sequential"
. Diese Sortierrichtlinie gilt auch für definierte Domains. Weitere Informationen zu policy
und zur Funktion der einzelnen Konfigurationen finden Sie in der coredns-Dokumentation.
Beispiel:
spec: orderPolicy: sequential