In diesem Dokument wird beschrieben, wie Sie Cloud DNS als DNS-Anbieter für Ihre Google Kubernetes Engine-Cluster (GKE) einrichten und verwenden.
Cloud DNS verwaltet automatisch die DNS-Einträge für Ihre Kubernetes-Dienste. Standardmäßig sind diese Einträge nur innerhalb Ihres Clusters (Clusterbereich) zugänglich.
Wenn Sie monitorlose Dienste von außerhalb Ihres Clusters auflösen müssen, z. B. von Compute Engine-VMs, müssen Sie entweder den VPC-Bereich oder den additiven VPC-Bereich aktivieren.
Dieses Dokument richtet sich an GKE-Nutzer, einschließlich Entwickler, Administratoren und Architekten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben in Google Cloudfinden Sie unter Häufig verwendete GKE Enterprise-Nutzerrollen und -Aufgaben.
Damit Sie dieses Dokument optimal nutzen können, sollten Sie mit Folgendem vertraut sein:
Damit ClusterIP- oder NodePort-Dienste von außerhalb des Clusters erreichbar sind, müssen Sie den Dienst über LoadBalancer oder eine andere Methode freigeben und seine externe IP-Adresse in Cloud DNS registrieren.
Weitere Informationen zur Verwendung von kube-dns als DNS-Anbieter finden Sie unter Diensterkennung und DNS.
Informationen zur Verwendung einer benutzerdefinierten Version von kube-dns oder benutzerdefinierten DNS-Anbietern finden Sie unter Benutzerdefiniertes kube-dns-Deployment einrichten.
Preise
Wenn Cloud DNS der DNS-Anbieter für GKE-Standardcluster ist, werden DNS-Abfragen von Pods innerhalb des GKE-Cluster gemäß den Preisen für Cloud DNS abgerechnet.
Abfragen an eine von GKE verwaltete VPC-bezogene DNS-Zone werden zu den Standardpreisen für Cloud DNS abgerechnet.
Limits und Einschränkungen
Es gelten folgende Einschränkungen:
- Der VPC-Bereich wird auf Autopilot-Clustern nicht unterstützt, sondern nur der Clusterbereich. Wenn Sie monitorlose Dienstnamen auflösen müssen, die in GKE Autopilot-Clustern ausgeführt werden, müssen Sie einen additiven VPC-Bereich verwenden.
- Sie können den additiven VPC-Bereich für GKE Autopilot-Cluster nur beim Erstellen des Clusters aktivieren. Das Aktivieren oder Deaktivieren des additiven VPC-Bereichs in vorhandenen GKE Autopilot-Clustern wird nicht unterstützt.
- Das Erstellen von Clustern mit additivem VPC-Bereich in Dienstprojekten von freigegebenen VPC-Netzwerken wird nicht unterstützt.
- Cloud DNS für GKE ist nicht für Assured Workloads mit einer IL4-Compliance-Richtlinie verfügbar.
kube-dnswird in solchen regulierten Umgebungen erzwungen. - Manuelle Änderungen an den verwalteten privaten DNS-Zonen werden nicht unterstützt und vom Cloud DNS-Controller überschrieben. Änderungen an den DNS-Einträgen in diesen Zonen gehen verloren, wenn der Controller neu gestartet wird.
- Nachdem Sie Cloud DNS für GKE in einem Cluster aktiviert haben, wird
kube-dnsweiterhin im Cluster ausgeführt. Sie könnenkube-dnsdeaktivieren, indem Sie daskube-dns-Deployment und das Autoscaling auf null skalieren. - Sie können den DNS-Bereich in einem Cluster nicht mehr ändern, nachdem Sie den Bereich mit dem Flag
--cluster-dns-scopefestgelegt haben. Wenn Sie den DNS-Bereich ändern müssen, müssen Sie den Cluster mit einem anderen DNS-Bereich neu erstellen. - Es gelten die Einschränkungen für CloudDNS-Ressourcen. Insbesondere kann jeweils nur eine Antwortrichtlinienzone an ein VPC-Netzwerk gebunden sein. Bei VPC- und additiven VPC-Bereichen schlägt die Clustererstellung fehl, wenn bereits eine Antwortrichtlinienzone vorhanden ist, die nicht der Namenskonvention entspricht, die an das VPC-Netzwerk des Clusters gebunden ist.
- Benutzerdefinierte Stub-Domains und vorgelagerte DNS-Serverkonfigurationen gelten für die DNS-Konfigurationen von Pods und Knoten. Pods, die das Hostnetzwerk oder Prozesse verwenden, die direkt auf dem Host ausgeführt werden, verwenden auch die Stub-Domain und die vorgelagerten Nameserver-Konfigurationen. Dieses Verhalten wird nur in Standard unterstützt.
- Benutzerdefinierte Stub-Domains und vorgelagerte Nameserver, die über die
kube-dnsConfigmap konfiguriert wurden, werden für den Clusterbereich-DNS automatisch auf Cloud DNS angewendet. Das VPC-Bereichs-DNS ignoriert diekube-dns-ConfigMap und Sie müssen diese Konfigurationen direkt auf Cloud DNS anwenden. Dieses Verhalten wird nur in Standard unterstützt. - Die Migration von
kube-dnszum VPC-Bereich führt zu einer Unterbrechung. Erstellen Sie den Cluster neu, wenn Sie vonkube-dnszum VPC-Bereich oder umgekehrt wechseln. - Für den VPC-Bereich darf der sekundäre IP-Adressbereich für Dienste nicht für andere Cluster in diesem Subnetzwerk freigegeben werden.
- Für den VPC-Bereich ist die mit einem PTR-Eintrag verknüpfte Antwortrichtlinie an das VPC-Netzwerk angehängt. Wenn andere Antwortrichtlinien an das Clusternetzwerk gebunden sind, schlägt die Auflösung des PTR-Eintrag für IP-Adressen von Kubernetes-Diensten fehl.
- Wenn Sie versuchen, einen monitorlosen Dienst mit einer Anzahl von Pods zu erstellen, die das zulässige Kontingent überschreitet, erstellt Cloud DNS keine Eintragssätze oder Einträge für den Dienst.
- Dienst- und Portnamen sind auf 62 Zeichen begrenzt, obwohl DNS-Labels ein Limit von 63 Zeichen haben. Das liegt daran, dass GKE DNS-Einträgen ein Unterstrichpräfix hinzufügt.
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem Befehl
gcloud components updateab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.
Aktivieren Sie die Cloud DNS API in Ihrem Projekt:
Wenn Sie Cloud DNS im Clusterbereich verwenden möchten, benötigen Sie eine der folgenden Versionen:
- Für Standard: GKE-Versionen 1.24.7-gke.800 oder 1.25.3-gke.700 oder höher.
- Für Autopilot: GKE-Versionen 1.25.9-gke.400 oder 1.26.4-gke.500 oder höher.
- Google Cloud CLI-Version 411.0.0 oder höher.
Wenn Sie Cloud DNS im additiven VPC-Bereich verwenden möchten, benötigen Sie eine der folgenden Versionen:
- GKE-Version 1.28.3-gke.1430000 oder höher.
- Google Cloud CLI-Version 503.0.0 oder höher.
Clusterbereichs-DNS aktivieren
Im Clusterbereichs-DNS können nur Knoten, die im GKE-Cluster ausgeführt werden, Dienstnamen auflösen. Dienstnamen stehen zwischen Clustern nicht in Konflikt. Dieses Verhalten ist mit kube-dns in GKE-Clustern identisch. Das bedeutet, dass Sie Cluster ohne Ausfallzeit oder Änderungen an Ihren Anwendungen von kube-dns zum Cloud DNS-Cluster migrieren können.
Das folgende Diagramm zeigt, wie Cloud DNS eine private DNS-Zone für einen GKE-Cluster erstellt. Nur Prozesse und Pods, die auf den Knoten im Cluster ausgeführt werden, können die DNS-Einträge des Clusters auflösen, da sich nur die Knoten im DNS-Bereich befinden.
Clusterbereich in einem neuen Cluster aktivieren
Neue Autopilot-Cluster in den Versionen 1.25.9-gke.400, 1.26.4-gke.500 oder höher werden standardmäßig auf den Cloud DNS-Clusterbereich festgelegt. Im folgenden Abschnitt wird beschrieben, wie Sie den Clusterbereich in einem neuen Standardcluster aktivieren.
Standardcluster mit aktiviertem Clusterbereich erstellen
Sie können einen GKE-Standardcluster mit aktiviertem Cloud DNS-Clusterbereich über die gcloud CLI oder die Google Cloud Console erstellen:
gcloud
Erstellen Sie mit dem --cluster-dns-Flag einen Cluster:
gcloud container clusters create CLUSTER_NAME \
--cluster-dns=clouddns \
--cluster-dns-scope=cluster \
--location=COMPUTE_LOCATION
Ersetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.COMPUTE_LOCATION: der Compute Engine-Standort für den Cluster.
Das Flag --cluster-dns-scope=cluster ist im Befehl optional, da cluster der Standardwert ist.
Console
Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster erstellen auf.
Klicken Sie im Navigationsbereich unter Cluster auf Netzwerk.
Klicken Sie im Abschnitt DNS-Anbieter auf Cloud DNS.
Wählen Sie Clusterbereich aus.
Konfigurieren Sie den Cluster nach Bedarf.
Klicken Sie auf Erstellen.
Clusterbereich in einem vorhandenen Cluster aktivieren
Die Migration eines vorhandenen Autopilot-Clusters von kube-dns zum Cloud DNS-Clusterbereich wird nicht unterstützt. Erstellen Sie Autopilot-Cluster in GKE-Version 1.25.9-gke.400, 1.26.4-gke.500 oder höher neu, um den Cloud DNS-Clusterbereich zu aktivieren.
Sie können einen vorhandenen Standardcluster von kube-dns zum Cloud DNS-Clusterbereich migrieren. Verwenden Sie dazu die gcloud CLI oder dieGoogle Cloud -Konsole.
Wenn Sie einen vorhandenen Cluster von kube-dns zu Cloud DNS migrieren, müssen Sie die Knoten neu erstellen, damit die Änderung wirksam wird. Migrieren Sie Cluster mit ausgeführten Anwendungen, ohne die Clusterkommunikation zu unterbrechen. Aktivieren Sie dazu Cloud DNS als DNS-Anbieter in jedem Knotenpool separat. Eine Teilmenge der Knoten ist jederzeit betriebsbereit, da einige Knotenpools kube-dns und einige Knotenpools Cloud DNS verwenden.
gcloud
Aktualisieren Sie den vorhandenen Cluster:
gcloud container clusters update CLUSTER_NAME \ --cluster-dns=clouddns \ --cluster-dns-scope=cluster \ --location=COMPUTE_LOCATIONErsetzen Sie dabei Folgendes:
CLUSTER_NAMEist der Name des Clusters.COMPUTE_LOCATION: der Compute Engine-Standort für Ihren Cluster.
Das Flag
--cluster-dns-scope=clusterist im Befehl optional, daclusterder Standardwert ist.Das Ergebnis sieht etwa so aus:
All the node-pools in the cluster need to be re-created by the user to start using Cloud DNS for DNS lookups. It is highly recommended to complete this step shortly after enabling Cloud DNS. Do you want to continue (Y/n)?Nach der Bestätigung wird der Cloud DNS-Controller auf der GKE-Steuerungsebene ausgeführt. Ihre Pods verwenden jedoch Cloud DNS nicht für die DNS-Auflösung, bis Sie Ihren Knotenpool aktualisieren oder dem Cluster neue Knotenpools hinzufügen.
Aktualisieren Sie die Knotenpools im Cluster für die Verwendung von Cloud DNS:
gcloud container clusters upgrade CLUSTER_NAME \ --node-pool=POOL_NAME \ --location=COMPUTE_LOCATIONErsetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.POOL_NAMEist der Name des zu aktualisierenden Knotenpools.
Wenn der Knotenpool und die Steuerungsebene dieselbe Version ausführen, führen Sie zuerst ein Upgrade der Steuerungsebene durch, wie unter Manuelles Upgrade der Steuerungsebene beschrieben. Führen Sie dann das Knotenpoolupgrade durch.
Prüfen Sie die Antwort und wiederholen Sie diesen Befehl für jeden Knotenpool im Cluster. Wenn Ihr Cluster nur einen einzigen Knotenpool hat, lassen Sie das Flag
--node-poolweg.
Console
Öffnen Sie in der Google Cloud Console die Seite Google Kubernetes Engine.
Click the name of the cluster you want to modify.
Klicken Sie unter Netzwerk im Feld DNS-Anbieter auf edit DNS-Anbieter bearbeiten.
Klicken Sie auf Cloud DNS.
Klicken Sie auf Clusterbereich.
Klicken Sie auf Änderungen speichern.
Additiven VPC-Bereich aktivieren
In diesem Abschnitt werden Schritte zum Aktivieren oder Deaktivieren des additiven VPC-Bereichs als Add-on für den Cloud DNS-Clusterbereich beschrieben.
Additiven VPC-Bereich in einem neuen Cluster aktivieren
Sie können das additive VPC-Bereichs-DNS in einem neuen GKE-Cluster über die gcloud CLI oder die Google Cloud -Konsole aktivieren.
Autopilot-Cluster mit additivem VPC-Bereich erstellen
gcloud container clusters create-auto CLUSTER_NAME \
--additive-vpc-scope-dns-domain=UNIQUE_CLUSTER_DOMAIN
Ersetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.UNIQUE_CLUSTER_DOMAIN: der Name einer Domain. Sie müssen dafür sorgen, dass dieser Name in der VPC nur einmal vorkommt, da GKE diesen Wert nicht prüft. Sie können diesen Wert nicht mehr ändern, nachdem Sie ihn festgelegt haben. Sie dürfen keine Domain verwenden, die auf.localendet. Andernfalls können DNS-Auflösungsfehler auftreten.
Standardcluster mit additivem VPC-Bereich erstellen
gcloud container clusters create CLUSTER_NAME \
--cluster-dns=clouddns \
--cluster-dns-scope=cluster \
--additive-vpc-scope-dns-domain=UNIQUE_CLUSTER_DOMAIN
Das Flag --cluster-dns-scope=cluster ist optional, da cluster der Standardwert ist.
Ersetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.UNIQUE_CLUSTER_DOMAIN: der Name einer Domain. Sie müssen dafür sorgen, dass dieser Name in der VPC nur einmal vorkommt, da GKE diesen Wert nicht prüft. Sie können diesen Wert nicht mehr ändern, nachdem Sie ihn festgelegt haben. Sie dürfen keine Domain verwenden, die auf.localendet. Andernfalls können DNS-Auflösungsfehler auftreten.
Additiven VPC-Bereich in einem vorhandenen Standardcluster aktivieren
Das Aktivieren des additiven VPC-Bereichs in einem vorhandenen Autopilot-Cluster wird nicht unterstützt.
Führen Sie den folgenden Befehl aus, um den additiven VPC-Bereich in einem vorhandenen Standardcluster zu aktivieren:
gcloud container clusters update CLUSTER_NAME \
--additive-vpc-scope-dns-domain=UNIQUE_CLUSTER_DOMAIN \
--location=COMPUTE_LOCATION
Ersetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.UNIQUE_CLUSTER_DOMAIN: der Name einer Domain. Sie müssen dafür sorgen, dass dieser Name in der VPC nur einmal vorkommt, da GKE diesen Wert nicht prüft. Sie können diesen Wert nicht mehr ändern, nachdem Sie ihn festgelegt haben. Sie dürfen keine Domain verwenden, die auf.localendet. Andernfalls können DNS-Auflösungsfehler auftreten.COMPUTE_LOCATION: der Compute Engine-Standort für den Cluster.
VPC-Bereich-DNS aktivieren
Im VPC-Bereich-DNS können die DNS-Namen eines Clusters in der gesamten VPC aufgelöst werden. Jeder Client in der VPC kann Cluster-DNS-Einträge auflösen.
Das VPC-Bereich-DNS ermöglicht die folgenden Anwendungsfälle:
- Monitorlose Diensterkennung für Nicht-GKE-Clients in derselben VPC.
- Auflösung des GKE-Dienstes von lokalen oder Drittanbieter-Cloud-Clients. Weitere Informationen finden Sie unter Richtlinie für eingehende Server.
- Dienstauflösung, bei der ein Client entscheiden kann, mit welchem Cluster er über die DNS-Domain des benutzerdefinierten Clusters kommunizieren möchte.
Im folgenden Diagramm verwenden zwei GKE-Cluster das DNS des VPC-Bereichs in derselben VPC. Beide Cluster haben anstelle der Standarddomain .cluster.local die benutzerdefinierte DNS-Domain .cluster1 und .cluster2. Eine VM kommuniziert mit dem monitorlosen Back-End-Dienst, indem backend.default.svc.cluster1 aufgelöst wird. Cloud DNS löst den monitorlosen Dienst in die einzelnen Pod-IP-Adressen im Dienst auf und die VM kommuniziert direkt mit den Pod-IP-Adressen.
Diese Art der Auflösung können Sie auch von anderen Netzwerken ausführen, wenn eine Verbindung zur VPC über Cloud Interconnect oder Cloud VPN hergestellt wird. Mit DNS-Serverrichtlinien können Clients aus Netzwerken, die mit der VPC verbunden sind, Namen in Cloud DNS auflösen. Dies umfasst auch GKE-Dienste, wenn der Cluster VPC-Bereichs-DNS verwendet.
VPC-Bereich in einem vorhandenen Cluster aktivieren
Die Migration zum VPC-Bereich wird nur in Standard unterstützt, nicht in Autopilot.
Sie können einen vorhandenen Standardcluster von kube-dns zum Cloud DNS-VPC-Bereich migrieren. Verwenden Sie dazu die gcloud CLI oder die Google Cloud Console.
Wenn Sie zum VPC-Bereich migrieren, müssen Sie die Knoten neu erstellen, damit die Änderung wirksam wird.
gcloud
Aktualisieren Sie den vorhandenen Cluster:
gcloud container clusters update CLUSTER_NAME \ --cluster-dns=clouddns \ --cluster-dns-scope=vpc \ --cluster-dns-domain=CUSTOM_DOMAIN \ --location=COMPUTE_LOCATIONErsetzen Sie dabei Folgendes:
CLUSTER_NAMEist der Name des Clusters.COMPUTE_LOCATION: der Compute Engine-Standort für den Cluster.CUSTOM_DOMAIN: der Name einer Domain. Sie müssen dafür sorgen, dass dieser Name in der VPC nur einmal vorkommt, da GKE diesen Wert nicht prüft. Sie können diesen Wert nicht mehr ändern, nachdem Sie ihn festgelegt haben. Sie dürfen keine Domain verwenden, die auf.localendet. Andernfalls können DNS-Auflösungsfehler auftreten.
Das Ergebnis sieht etwa so aus:
All the node-pools in the cluster need to be re-created by the user to start using Cloud DNS for DNS lookups. It is highly recommended to complete this step shortly after enabling Cloud DNS. Do you want to continue (Y/n)?Nach der Bestätigung wird der Cloud DNS-Controller auf der GKE-Steuerungsebene ausgeführt. Ihre Pods verwenden Cloud DNS für die DNS-Auflösung erst, nachdem Sie Ihren Knotenpool aktualisiert oder dem Cluster neue Knotenpools hinzugefügt haben.
Aktualisieren Sie die Knotenpools im Cluster für die Verwendung von Cloud DNS:
gcloud container clusters upgrade CLUSTER_NAME \ --node-pool=POOL_NAMEErsetzen Sie dabei Folgendes:
CLUSTER_NAMEist der Name des Clusters.POOL_NAMEist der Name des zu aktualisierenden Knotenpools.
Wenn der Knotenpool und die Steuerungsebene dieselbe Version ausführen, führen Sie zuerst ein Upgrade der Steuerungsebene durch, wie unter Manuelles Upgrade der Steuerungsebene beschrieben. Führen Sie dann das Knotenpoolupgrade durch.
Prüfen Sie die Antwort und wiederholen Sie diesen Befehl für jeden Knotenpool im Cluster. Wenn Ihr Cluster nur einen einzigen Knotenpool hat, lassen Sie das Flag
--node-poolweg.
Console
Öffnen Sie in der Google Cloud Console die Seite Google Kubernetes Engine.
Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie unter Netzwerk im Feld DNS-Anbieter auf edit DNS-Anbieter bearbeiten.
Klicken Sie auf Cloud DNS.
Klicken Sie auf VPC-Bereich.
Klicken Sie auf Änderungen speichern.
Cloud DNS prüfen
Prüfen Sie, ob Cloud DNS für GKE für Ihren Cluster ordnungsgemäß funktioniert:
Prüfen Sie, ob die Knoten Cloud DNS verwenden. Stellen Sie dazu eine Verbindung zu einem Pod auf einem Knoten her und führen Sie den Befehl
cat /etc/resolv.confaus:kubectl exec -it POD_NAME -- cat /etc/resolv.conf | grep nameserverErsetzen Sie
POD_NAMEdurch den Namen des Pods.Je nach Clustermodus sieht die Ausgabe in etwa so aus:
GKE Autopilot-Cluster
nameserver 169.254.20.10Da NodeLocal DNSCache in GKE Autopilot standardmäßig aktiviert ist, verwendet der Pod NodeLocal DNSCache.
Wenn der lokale Cache keinen Eintrag für den zu suchenden Namen hat, leitet NodeLocal DNSCache die Anfrage an Cloud DNS weiter.
GKE-Standardcluster
nameserver 169.254.169.254Dieser Beispiel-Pod verwendet
169.254.169.254alsnameserver. Dies ist die IP-Adresse des Metadatenservers, auf dem die Cloud DNS-Datenebene Anfragen an Port53überwacht. Die Knoten verwenden diekube-dns-Dienstadresse nicht mehr für die DNS-Auflösung und die gesamte DNS-Auflösung erfolgt auf dem lokalen Knoten.Wenn die Ausgabe eine IP-Adresse wie
10.x.y.10ist, verwendet der Podkube-dns. Im Abschnitt Fehlerbehebung erfahren Sie, warum Ihr Pod weiterhinkube-dnsverwendet .Ist die Ausgabe
169.254.20.10, so bedeutet dies, dass Sie NodeLocal DNSCache in Ihrem Cluster aktiviert haben. In diesem Fall verwendet der Pod NodeLocal DNSCache.Stellen Sie eine Beispielanwendung in Ihrem Cluster bereit:
kubectl run dns-test --image us-docker.pkg.dev/google-samples/containers/gke/hello-app:2.0Geben Sie die Beispielanwendung mit einem Dienst frei:
kubectl expose pod dns-test --name dns-test-svc --port 8080Prüfen Sie, ob der Dienst erfolgreich bereitgestellt wurde:
kubectl get svc dns-test-svcDie Ausgabe sieht etwa so aus:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dns-test-svc ClusterIP 10.47.255.11 <none> 8080/TCP 6m10sDer Wert der Spalte
CLUSTER-IPist die virtuelle IP-Adresse für Ihren Cluster. In diesem Beispiel lautet die virtuelle IP-Adresse10.47.255.11.Prüfen Sie, ob der Dienstname als Eintrag in der privaten DNS-Zone für Ihren Cluster erstellt wurde:
gcloud dns record-sets list \ --zone=PRIVATE_DNS_ZONE \ --name=dns-test-svc.default.svc.DOMAIN_NAME.Ersetzen Sie Folgendes:
PRIVATE_DNS_ZONE: Der Name der von GKE erstellten verwalteten DNS-Zone. Zonennamen finden Sie in der Google Cloud Console auf der Seite Cloud DNS-Zonen oder in der Namenskonvention.DOMAIN_NAME:cluster.local, wenn Sie den Clusterbereich ohne zusätzlichen VPC-Bereich verwenden, oder die benutzerdefinierte Domain, die Sie beim Aktivieren des VPC-Bereichs oder des zusätzlichen VPC-Bereichs konfiguriert haben.
Die Ausgabe sieht etwa so aus:
NAME: dns-test-svc.default.svc.cluster.local. TYPE: A TTL: 30 DATA: 10.47.255.11
Cloud DNS in Standardclustern deaktivieren
Das Deaktivieren von Cloud DNS wird in Autopilot-Clustern, die standardmäßig mit aktiviertem Cloud DNS erstellt wurden, nicht unterstützt.
Das Deaktivieren des VPC-Bereichs in Standard wird nicht unterstützt. Sie müssen den Cluster mit kube-dns als DNS-Anbieter neu erstellen.
Sie können den Clusterbereich deaktivieren und in einem Standardcluster mit der gcloud CLI oder derGoogle Cloud Console zu kube-dns zurückkehren.
gcloud
Aktualisieren Sie den Cluster, um kube-dns zu verwenden:
gcloud container clusters update CLUSTER_NAME \
--cluster-dns=kube-dns \
--location=COMPUTE_LOCATION
Ersetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.COMPUTE_LOCATION: der Compute Engine-Standort für Ihren Cluster.
Console
Öffnen Sie in der Google Cloud Console die Seite Google Kubernetes Engine.
Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie unter Netzwerk im Feld DNS-Anbieter auf edit DNS-Anbieter bearbeiten.
Klicken Sie auf Kube-dns.
Klicken Sie auf Änderungen speichern.
Nachdem Sie Cloud DNS deaktiviert haben, müssen Sie Ihre Knotenpools neu erstellen, bevor Knoten kube-dns für die Auflösung verwenden können. Wenn Sie kube-dns zuvor auf null Knoten skaliert haben, müssen Sie kube-dns hochskalieren, bevor Knoten es für die DNS-Auflösung verwenden können. Wenn Sie Ihre Knotenpools nicht neu erstellen, verwenden Pods auf vorhandenen Knoten weiterhin Cloud DNS für die DNS-Auflösung, da ihre /etc/resolv.conf-Datei erst aktualisiert wird, wenn der Knoten neu erstellt wird.
Additiven VPC-Bereich deaktivieren
Wenn Sie den additiven VPC-Bereich für den Cluster deaktivieren, werden nur die DNS-Einträge in den privaten Zonen gelöscht, die mit dem VPC-Netzwerk verbunden sind. Die Einträge in den privaten DNS-Zonen für den GKE-Cluster bleiben bestehen und werden von Cloud DNS für GKE verwaltet, bis der monitorlose Dienst aus dem Cluster gelöscht wird.
Führen Sie den folgenden Befehl aus, um den additiven VPC-Bereich zu deaktivieren:
gcloud container clusters update CLUSTER_NAME \
--disable-additive-vpc-scope
Ersetzen Sie CLUSTER_NAME durch den Namen des Clusters.
Durch diese Einstellung bleibt der Cluster mit Cloud DNS-Clusterbereich aktiviert, um die DNS-Auflösung innerhalb des Clusters bereitzustellen.
Bereinigen
Wenn Sie mit den Übungen in diesem Dokument fertig sind, führen Sie die folgenden Schritte aus, um Ressourcen zu entfernen und unerwünschte Kosten für Ihr Konto zu vermeiden:
Löschen Sie den Dienst:
kubectl delete service dns-test-svcLöschen Sie den Pod:
kubectl delete Pod dns-testSie können auch den Cluster löschen.
Fehlerbehebung
Informationen zur Fehlerbehebung bei Cloud DNS finden Sie auf den folgenden Seiten:
- Informationen zu Cloud DNS in GKE finden Sie unter Fehlerbehebung bei Cloud DNS in GKE.
- Spezifische Informationen zur Fehlerbehebung bei Cloud DNS finden Sie unter Fehlerbehebung bei Cloud DNS.
- Allgemeine Informationen zur Diagnose von Kubernetes DNS-Problemen finden Sie unter Debugging bei der DNS-Auflösung.
Nächste Schritte
- Übersicht über die Bereitstellung von verwaltetem DNS in GKE
- Eine Übersicht zur Verwendung von DNS in Kubernetes-Clustern finden Sie unter DNS für Dienste und Pods.
- Bereiche und Hierarchien in Cloud DNS
- Logging für private verwaltete Zonen aktivieren und deaktivieren