In diesem Dokument wird beschrieben, wie Sie Ihre interne DNS-Richtlinie so aktualisieren, dass für neue Projekte zonales DNS verwendet wird. Zonales DNS verbessert die Zuverlässigkeit von Anwendungen, indem Ausfälle innerhalb von Zonen isoliert werden, um Unterbrechungen bei kritischen Diensten wie der Instanzerstellung und der automatischen Fehlerbehebung zu vermeiden.
Hinweise
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Prüfen Sie die Standardrichtlinie für globales DNS:
Organization Policy Administrator (
roles/orgpolicy.policyAdmin
) für den Ordner oder die Organisation -
Prüfen, ob ein Ordner für die Migration zu zonalem DNS bereit ist:
Browser (
roles/browser
) für den Ordner oder die Organisation -
Legen Sie eine Einschränkung für die Organisationsrichtlinie fest:
orgpolicy.*
- Ermitteln, ob ein Ordner für die Migration zu zonalem DNS bereit ist:
-
resourcemanager.folders.get
-
resourcemanager.folders.list
-
resourcemanager.organizations.get
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
-
Prüfen Sie, ob globale DNS-Namen und VM-Metadaten vorhanden sind:
compute.projects.get
- Liste der Projekte und Ordner erstellen: Erstellen Sie eine Liste aller Projekte und der zugehörigen Ordner in Ihrer Organisation.
- Ordner für die Ausnahme festlegen: Suchen Sie die Ordner mit den in Schritt 1 aufgeführten inkompatiblen Projekten. Diese Ordner müssen vorübergehend von der zonalen DNS-Richtlinie ausgenommen werden.
- Organisationsrichtlinie festlegen: Die zonale DNS-Richtlinie auf Organisationsebene erzwingen.
- Bestimmte Ordner ausnehmen: Wenden Sie Ausnahmen auf die in Schritt 3 identifizierten Ordner an. So können sie weiterhin globales DNS verwenden, während Sie die inkompatiblen Projekte beheben.
- Flexible App Engine-Umgebung, Google Kubernetes Engine und in der Compute Engine ausgeführte Container
- Cloud SQL, Cloud Run-Funktionen und Batch
- Dataproc und Dataflow
Das Erstellungsdatum der Organisation:
- Nach dem 6. September 2018 erstellt: Ihre Organisation verwendet standardmäßig zonales DNS. Sie müssen dann nichts weiter tun.
- Vor dem 6. September 2018 erstellt: Ihre Organisation verwendet standardmäßig globales DNS. Sie sollten eine Migration zu zonalem DNS in Betracht ziehen.
Das Vorhandensein und die Erzwingung einer Einschränkung der Organisationsrichtlinie:
Auch wenn Ihre Organisation vor dem 6. September 2018 erstellt wurde, hat ein Administrator möglicherweise eine Richtlinie erzwungen, die die Verwendung von zonalem DNS für alle neuen Projekte vorsieht, die innerhalb der Organisation erstellt werden. Mit der Google Cloud Console oder der Google Cloud CLI können Sie prüfen, ob eine solche Richtlinie vorhanden ist.
Gehen Sie zu IAM und Verwaltung> Identität und Organisation in der Console.
Prüfen Sie das Datum der Registrierung der Organisation.
Wenn Ihre Organisation vor dem 6. September 2018 erstellt wurde, prüfen Sie, ob eine Organisationsrichtlinieneinschränkung den Standard-DNS-Typ für alle neu erstellten Projekte auf zonales DNS setzt.
- Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung> Organisationsrichtlinien auf.
- Geben Sie im Filter
constraints/compute.setNewProjectDefaultToZonalDNSOnly
ein: - Wenn die Einschränkung konfiguriert ist, klicken Sie auf den Namen Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird.
- Prüfen Sie auf der Seite Richtliniendetails den Status.
- Wenn der Status Erzwungen lautet, ist der interne DNS-Standardtyp für alle neuen Projekte, die in der Organisation erstellt werden, zonales DNS.
- Andernfalls wird der Standard-DNS-Typ des Projekts weiterhin durch die Erstellungszeit der Organisation bestimmt.
- Wenn die Einschränkung nicht für die Organisation konfiguriert wurde, wird der Standard-DNS-Typ für das Projekt anhand des Erstellungsdatums der Organisation bestimmt.
Prüfen Sie den Metadatenwert
creationTime
der Organisation.gcloud organizations describe ORGANIZATION_ID
Ersetzen Sie ORGANIZATION_ID durch die Organisations-ID oder den Domainnamen der Organisation.
Wenn Ihre Organisation vor dem 6. September 2018 erstellt wurde, prüfen Sie, ob eine Organisationsrichtlinieneinschränkung den Standard-DNS-Typ für alle neu erstellten Projekte auf zonales DNS setzt.
gcloud resource-manager org-policies list --organization=ORGANIZATION_ID \ --filter="constraints/compute"
Suchen Sie in der Ausgabe nach
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.- Wenn die Einschränkung vorhanden ist und
Status
Enforced
ist, verwenden alle neu in der Organisation erstellten Projekte standardmäßig zonales DNS. - Wenn die Einschränkung nicht vorhanden oder nicht erzwungen ist, wird der Standard-DNS-Typ durch das Erstellungsdatum der Organisation bestimmt, wie im ersten Schritt beschrieben.
- Wenn die Einschränkung vorhanden ist und
- Erstellen Sie ein BigQuery-Dataset.
Exportieren Sie die Asset-Metadaten für Ihre Organisation in eine BigQuery-Tabelle.
- Prüfen Sie, ob die Cloud Asset Inventory API aktiviert ist.
- Konfigurieren Sie die Berechtigungen, die für die Verwendung der Cloud Asset Inventory API erforderlich sind.
Verwenden Sie den folgenden gcloud-Befehl, um das
compute.googleapis.com/Project
-Asset zu exportieren:gcloud asset export \ --content-type resource \ --organization 'ORGANIZATION_ID' \ --bigquery-table 'projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME' \ --asset-types='compute.googleapis.com/Project' \ --output-bigquery-force
Ersetzen Sie Folgendes:
- ORGANIZATION_ID: die Organisations-ID
- PROJECT_ID: die Projekt-ID
- DATASET_ID: den Namen des BigQuery-Datasets
- TABLE_NAME: die Tabelle, in die Sie Ihre Metadaten exportieren. Wenn die Tabelle nicht vorhanden ist, wird sie in BigQuery erstellt.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie auf
Neue Abfrage erstellen.Geben Sie im Textfeld des Abfrageeditors die folgende GoogleSQL-Abfrage ein und klicken Sie auf
Ausführen.SELECT JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting, count(*) as project_count FROM PROJECT_ID.DATASET_ID.TABLE_NAME GROUP BY 1
Ersetzen Sie Folgendes:
- PROJECT_ID: die Projekt-ID
- DATASET_ID: den Namen des BigQuery-Datasets
- TABLE_NAME: die Tabelle, die die exportierten Metadaten enthält, aus Schritt 2.
Bei Projekten mit dem Wert
ZONAL_ONLY
fürvmDnsSetting
ist ein zonales DNS konfiguriert. Andernfalls wird für die Projekte standardmäßig globales DNS verwendet.Optional: Wenn Sie eine detaillierte Ansicht der
vmDnsSetting
für jedes Projekt aufrufen möchten, geben Sie die folgende GoogleSQL-Abfrage ein und klicken Sie dann auf Ausführen.SELECT SUBSTR(name,35) as project_id, JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting FROM PROJECT_ID.DATASET_ID.TABLE_NAME
- Der Ordner ist bereit, wenn in den letzten 30 Tagen keine Abfragen für alle Projekte ausgeführt wurden, die nicht mit zonalem DNS kompatibel sind.
- Wenn ein Ordner nicht für die Migration bereit ist, antwortet das Script mit den Projekt-IDs in dem Ordner, die verhindern, dass der Ordner für die Migration bereit ist. Die Projekte in dieser Ergebnisliste sind noch nicht mit zonalem DNS kompatibel und erfordern weitere Maßnahmen.
- Rufen Sie die Ordner-ID ab. Wenn Sie die Ordner-ID nicht kennen, gehen Sie so vor:
- Rufen Sie in der Google Cloud Console die Seite Verwaltete Ressourcen auf.
- Wenden Sie den Filter
Name:FOLDER_NAME
an, um die Ordner-ID abzurufen.
Stellen Sie eine Abfrage an die BigQuery-Tabelle mit den exportierten
compute.Project assets
-Daten.Eine Anleitung zum Erstellen der BigQuery-Tabelle finden Sie unter Festlegen, welche Projekte in einem Ordner oder einer Organisation ein globales DNS verwenden.
Geben Sie die folgende GoogleSQL-Abfrage ein und klicken Sie auf
Ausführen:SELECT SUBSTR(name,35) AS project_id, FROM PROJECT_ID.DATASET_ID.TABLE_NAME WHERE CONTAINS_SUBSTR(ancestors, 'FOLDER_NUMBER')
Ersetzen Sie Folgendes:
- PROJECT_ID: die Projekt-ID
- DATASET_ID: den Namen des BigQuery-Datasets
- TABLE_NAME: die Tabelle mit den exportierten Metadaten.
- FOLDER_NUMBER: die Ordner-ID
Kopieren Sie die Liste der Projekt-IDs und speichern Sie sie in einer Datei.
Führen Sie das folgende Script
bash
aus: Das Script durchläuft die Projekt-IDs in der gespeicherten Datei, um festzustellen, ob ein Ordner für die Migration bereit ist.- Informieren Sie die Projektinhaber, dass sie bereite Projekte migrieren können, wenn die Migration von Ordnern und Projekten sicher ist.
- Bitten Sie die Projektinhaber, nicht kompatible Abfragen zu korrigieren, wenn Ordner Projekte enthalten, die nicht sicher migriert werden können.
- Melden Sie sich in der Google Cloud Console als Super Admin für Google Workspace oder Cloud Identity an.
Wechseln Sie in der Konsole zur Seite Organisationsrichtlinien.
Klicken Sie auf Auswählen und wählen Sie die Ordner aus, die von der Organisationsrichtlinie ausgenommen werden sollen.
In der Google Cloud Console wird auf einer oder mehreren Seiten eine Liste der Einschränkungen für Organisationsrichtlinien für diesen Ordner angezeigt.
So ermitteln Sie die Einschränkung der Organisationsrichtlinie, die das zonale DNS erzwingt:
- Klicken Sie auf Filtern.
- Name auswählen.
- Legen Sie den Filternamen auf Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird fest.
Klicken Sie auf den Namen der Einschränkung der Organisationsrichtlinie, um die Seite Richtliniendetails zu öffnen.
Klicken Sie auf Bearbeiten.
Wählen Sie auf der Seite Bearbeiten die Option Anpassen aus.
Wählen Sie unter Erzwingung die Option Aus aus, um die Erzwingung der Einschränkung zu deaktivieren. Das bedeutet, dass der interne DNS-Standardtyp für alle Projekte im Ordner durch das Erstellungsdatum der Organisation bestimmt wird.
Klicken Sie auf Speichern.
Melden Sie sich in der Google Cloud Console als Super Admin für Google Workspace oder Cloud Identity an.
Wechseln Sie in der Konsole zur Seite Organisationsrichtlinien.
Wählen Sie den Ordner oder die Organisation aus, für die Sie Organisationsrichtlinien aufrufen möchten. In der Google Cloud Console wird eine Liste der verfügbaren Einschränkungen für Organisationsrichtlinien angezeigt. Die Liste kann mehrere Seiten umfassen.
Um die Richtlinie zum Erzwingen des zonalen DNS zu ermitteln, klicken Sie auf Filter und wählen Sie Name aus. Setzen Sie dann den Filternamen auf Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird.
Klicken Sie auf den Richtliniennamen, um die Details aufzurufen.
Auf der Seite „Richtliniendetails“ finden Sie Informationen zur Einschränkung und zur aktuellen Anwendung der Einschränkung.
Standardmäßig ist die Erzwingung für einen Ordner oder eine Organisation nicht definiert. Wenn jedoch ein übergeordneter Ordner eine definierte Erzwingung hat, wird die Erzwingung vom nächstgelegenen übergeordneten Ordner übernommen, der eine definierte Erzwingung hat. Weitere Informationen finden Sie unter Informationen zu Evaluierungen der Hierarchie.
Klicken Sie auf Bearbeiten, um die Organisationsrichtlinie anzupassen.
Wählen Sie auf der Bearbeitungsseite Anpassen aus.
Wählen Sie unter Erzwingung die Option An aus.
Dadurch wird der interne DNS-Standardtyp für alle neuen Projekte in der Organisation auf zonales DNS festgelegt.
Klicken Sie auf Speichern.
Deaktivieren Sie die Organisationsrichtlinie
constraints/compute.setNewProjectDefaultToZonalDNSOnly
auf Organisations- oder Ordnerebene. Eine Anleitung zum Ändern dieser Richtlinie finden Sie unter Zonales DNS standardmäßig für neue Projekte erzwingen.Legen Sie die Erzwingung der Richtlinie Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird auf Aus fest.
Wenn Sie für die gesamte Organisation wieder zum globalen DNS zurückkehren möchten, prüfen Sie, ob für keinen der Ordner in der Organisation die Organisationsrichtlinie
constraints/compute.setNewProjectDefaultToZonalDNSOnly
erzwungen wird.Wie Sie prüfen, ob globales DNS für Ihre Projekte und Instanzen konfiguriert ist, erfahren Sie unter Festlegen, welche Projekte in einem Ordner oder einer Organisation ein globales DNS verwenden.
- Vorhandene Projekte, die globales DNS verwenden, müssen separat migriert werden. Weitere Informationen finden Sie unter Projekte auf die Verwendung des zonalen DNS umstellen.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen der organisationsweiten internen DNS-Nutzung und zum Aktualisieren der Standardrichtlinie benötigen:
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Aufrufen der organisationsweiten internen DNS-Nutzung und zum Aktualisieren der Standardrichtlinie erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um die organisationsweite interne DNS-Nutzung aufzurufen und die Standardrichtlinie zu aktualisieren:
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Konfiguration – Übersicht
Wenn Sie eine Organisationsrichtlinie festlegen, um den internen DNS-Standardtyp zu überschreiben, verwenden neu erstellte Projekte standardmäßig zonales DNS. Die Organisationsrichtlinie wirkt sich nicht auf vorhandene Projekte aus, in denen die Compute Engine API bereits aktiviert ist. Informationen zum Umstellen vorhandener Projekte auf die Verwendung des zonalen DNS finden Sie unter Vorhandene Projekte auf zonales DNS umstellen.
Wir empfehlen, eine zonale DNS-Richtlinie auf Organisationsebene durchzusetzen. So wird sichergestellt, dass alle neuen Projekte, die in Ihrer Organisation erstellt werden, zonales DNS verwenden. Dadurch werden Zuverlässigkeit und Ausfallsicherheit verbessert. Möglicherweise müssen Sie einige Ordner jedoch von dieser organisationsweiten Richtlinie ausnehmen. Ordner müssen ausgenommen werden, wenn neue Projekte in diesen Ordnern von vorhandenen Projekten abhängen, die nicht mit zonalem DNS kompatibel sind.
Das Erzwingen einer zonalen DNS-Richtlinie auf Organisationsebene umfasst die folgenden Schritte:
So wird sichergestellt, dass neue Projekte zonales DNS für eine verbesserte Zuverlässigkeit nutzen, während gleichzeitig bestehende Abhängigkeiten von älteren Projekten berücksichtigt werden, die möglicherweise nicht sofort migriert werden können.
Beschränkungen
Wenn Sie zonale DNS-Namen für Ihre gesamte Organisation aktivieren, werden die zonalen DNS-Einstellungen auf Instanzen in anderen Diensten angewendet, z. B.:
Prüfen Sie, ob Ihre Anwendungen einen dieser Dienste verwenden, und identifizieren Sie mithilfe der Abfrageanalyse Kompatibilitätsprobleme mit zonalem DNS für die Ordner und Projekte, die mit diesen Anwendungen verknüpft sind.
Prüfen, ob Ihre Organisation standardmäßig globales DNS verwendet
Die Standard-DNS-Einstellung für Ihre Organisation hängt von zwei Faktoren ab:
Console
gcloud
Verwenden Sie den Befehl
organizations describe
und den Befehlresource-manager org-policies list
, um den Standard-DNS-Typ für eine Organisation zu ermitteln.Festlegen, welche Projekte in einem Ordner oder einer Organisation ein globales DNS verwenden.
Wenn Sie herausfinden möchten, welche Projekte das globale DNS verwenden, empfehlen wir, in BigQuery eine Tabelle mit den zugehörigen Projekten für Ihre Organisation und ihren Metadaten zu erstellen. Sie können dann mit dieser Tabelle eine Abfrage ausführen.
Migrationsbereitschaft eines Ordners ermitteln
In diesem Schritt werden ein
bash
-Script und die im vorherigen Abschnitt erstellte BigQuery-Tabelle verwendet, um die Migrationsbereitschaft des Ordners zu ermitteln.Gehen Sie folgendermaßen vor:
#!/bin/bash inaccessible_projects=() unready_projects=() for project in $(cat ~/FILENAME | tr '\n' ' '); do echo -e "Checking project $project..." ERROR=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}' --compressed | jq --raw-output '.error'` if ! [[ "$ERROR" -eq "null" ]]; then inaccessible_projects+=($project) continue fi QUERY_COUNT=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}' --compressed | jq --raw-output '.timeSeriesData[0].pointData[0].values[0].int64Value'` if [[ "$QUERY_COUNT" -ne "null" ]] && [[ "$QUERY_COUNT" -ne "0" ]]; then unready_projects+=($project) fi done error_len=${#inaccessible_projects[@]} unready_len=${#unready_projects[@]} echo -e "$error_len projects were inaccessible" echo -e "$unready_len projects were not ready for migration" if [ $error_len -ne 0 ]; then echo "Unable to access the following projects:" for project in "${inaccessible_projects[@]}"; do echo "$project" done fi if [ $unready_len -ne 0 ]; then echo "The following projects are not ready for migration:" for project in "${unready_projects[@]}"; do echo "$project" done fi if (( $error_len + $unready_len > 0 )); then echo "This folder is NOT ready for gDNS -> zDNS migration." else echo "This folder is ready for gDNS -> zDNS migration." fi
Ersetzen Sie FILENAME durch den Namen der Datei, in der Sie die Liste der Projekt-IDs gespeichert haben.
Teilen Sie die Ergebnisse der Migrationsbereitschaftsanalyse mit den Projektinhabern:
Ausgenommene Ordner, die nicht zu zonalem DNS migriert werden können
Wenn Sie einen Ordner von der Organisationsrichtlinie ausnehmen möchten, führen Sie die folgenden Schritte aus, um die Erzwingungsoption für die Richtlinie auf Ordnerebene auf
Off
festzulegen.Weitere Informationen zum Anpassen von Einschränkungen für Organisationsrichtlinien finden Sie in der Resource Manager-Dokumentation unter Richtlinien für boolesche Einschränkungen anpassen.
Zonales DNS standardmäßig für neue Projekte erzwingen
Gehen Sie so vor, um die Organisationsrichtlinie für einen Ordner oder eine Organisation festzulegen:
Wenn Sie die Änderung der Organisationsrichtlinie validieren möchten, können Sie ein neues Projekt in dem Ordner oder der Organisation erstellen, dann eine VM-Instanz erstellen und starten sowie prüfen, ob Ihre VM für zonales DNS aktiviert ist.
Wenn das interne globale DNS erforderlich ist, um eine in Ihrer Arbeitslast integrierte DNS-Namensabfrage aufzulösen, können Sie diese Änderung auf Organisations- oder Ordnerebene rückgängig machen, indem Sie die Erzwingung deaktivieren.
Zur Verwendung des globalen DNS für eine Organisation oder einen Ordner zurückkehren
Wenn Sie für eine Organisation oder einen Ordner wieder das globale DNS verwenden möchten, beenden Sie die Erzwingung der Organisationsrichtlinie für zonales DNS. Gehen Sie folgendermaßen vor:
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-02-20 (UTC).
-