In diesem Dokument wird beschrieben, wie Sie die DNS-Auflösung für eine neue Domain in Google Distributed Cloud (GDC) mit Air Gap mithilfe von DNS-Zonen konfigurieren. Verwenden Sie eine DNS-Zone, um eine Gruppe von DNS-Einträgen zusammenzufassen und zu steuern, ob diese Einträge außerhalb Ihrer Virtual Private Cloud (VPC) in GDC sichtbar sind.
Dieses Dokument richtet sich an Plattformadministratoren und Anwendungsoperatoren, die für die Verwaltung der DNS-Auflösung für ihre Organisation verantwortlich sind.
Sie können in Ihrer GDC-Umgebung öffentliche oder private DNS-Zonen erstellen, die den Sichtbarkeits- und Zugriffsanforderungen Ihrer Dienste entsprechen:
- Für Dienste, die externe Netzwerksichtbarkeit und externen Zugriff erfordern: Richten Sie eine öffentliche DNS-Zone ein, damit Nutzer und Systeme außerhalb Ihres Netzwerks auf Ihren Dienst zugreifen können. Wenn Sie eine Website, eine öffentliche API oder einen Dienst haben, der von außerhalb Ihrer GDC Cloud-Umgebung erreichbar sein muss, benötigen Sie eine öffentliche DNS-Zone, um Ihren Domainnamen den entsprechenden IP-Adressen zuzuordnen.
- Für Dienste, die einen sicheren und eingeschränkten Zugriff auf interne Systeme erfordern: Richten Sie eine private DNS-Zone ein, um Ihren internen Domainnamen zu verbergen und den Zugriff auf Ihre internen Dienste einzuschränken. Wenn Sie eine interne Anwendung, eine Datenbank oder einen Mikrodienst haben, die bzw. der mit anderen internen Diensten nur über sichere Protokolle und private IP-Adressen kommunizieren muss, benötigen Sie eine private DNS-Zone, um Ihren Domainnamen den entsprechenden IP-Adressen zuzuordnen. Eine private DNS-Zone sorgt dafür, dass diese Dienste sich gegenseitig über interne Domainnamen finden können, ohne dass ihre Existenz oder ihre IP-Adressen dem externen Netzwerk offengelegt werden. Dies erhöht die Sicherheit und vereinfacht die interne Vernetzung.
Weitere Informationen zum Unterschied zwischen öffentlichen und privaten DNS-Zonen finden Sie unter Zonentypen für Cloud DNS.
Hinweis
Wenn Sie DNS-Zonen in GDC konfigurieren und Einträge hinzufügen möchten, benötigen Sie Folgendes:
- Ein vorhandenes Projekt. Weitere Informationen finden Sie unter Projekt erstellen.
- Die erforderlichen Identitäts- und Zugriffsrollen. Wenn Sie DNS-Zonen für Ihr Projekt verwalten möchten, bitten Sie Ihren IAM-Projektadministrator, Ihnen die Rolle Managed DNS Project Admin (
managed-dns-project-admin) zuzuweisen. - Wenn Sie die gdcloud CLI verwenden möchten, muss sie installiert sein. Weitere Informationen finden Sie unter gdcloud CLI installieren.
- Wenn Sie
kubectlverwenden, eine kubeconfig-Datei für den globalen API-Server. Wenn Sie diese Datei noch nicht generiert haben, lesen Sie den Abschnitt Anmelden. Weitere Informationen finden Sie unter Globale und zonale API-Server.
Öffentliche DNS-Zone erstellen
Nachdem Sie eine öffentliche DNS-Zone erstellt haben, müssen Sie den DNS-Resolver Ihres Netzwerks so konfigurieren, dass Anfragen an die entsprechenden Nameserver weitergeleitet werden.
Zone erstellen
Sie können eine öffentliche DNS-Zone mit der gdcloud CLI oder der Kubernetes API erstellen.
gdcloud
Verwenden Sie zum Erstellen einer öffentlichen DNS-Zone den Befehl gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PUBLIC \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
Ersetzen Sie Folgendes:
DNS_ZONE_NAME: der Name Ihrer DNS-Zone.DOMAIN_NAME: der Domainname für Ihre öffentliche DNS-Zone, z. B.example.com.DESCRIPTION: eine Beschreibung für Ihre DNS-Zone. Beispiel:Public DNS zone for example.com. Dieses Feld ist optional.PROJECT_NAMESPACE: der Namespace Ihres Projekts. Dieses Flag ist optional, wenn Sie mitgdcloud config set projectglobal ein Standardprojekt festgelegt haben.--async: Geben Sie dies an, wenn der Befehl sofort zurückgegeben werden soll, anstatt auf den Abschluss des Vorgangs zu warten. Sie könnendescribeverwenden, um den Status des Vorgangs zu prüfen.
API
Verwenden Sie die Kubernetes API in GDC, um eine öffentliche DNS-Zone zu erstellen:
Erstellen Sie eine
ManagedDNSZone-Ressource und wenden Sie sie an, um eine DNS-Zone zu erstellen, auf die von außerhalb von GDC zugegriffen werden kann:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PUBLIC EOFErsetzen Sie Folgendes:
GLOBAL_API_SERVER: der kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.DNS_ZONE_NAME: der Name Ihrer DNS-Zone.PROJECT_NAMESPACE: der Namespace Ihres Projekts.DOMAIN_NAME: der Domainname für Ihre öffentliche DNS-Zone, z. B.example.com.DESCRIPTION: eine Beschreibung für Ihre DNS-Zone. Beispiel:Public DNS zone for example.com. Dieses Feld ist optional.
Beachten Sie, dass bei
visibilitydie Groß-/Kleinschreibung berücksichtigt wird und der Wert genauPUBLIClauten muss.
DNS-Resolver konfigurieren
Für eine öffentliche DNS-Zone müssen Sie den DNS-Resolver in Ihrem Netzwerk so konfigurieren, dass DNS-Anfragen für diese DNS-Zone an die Nameserver in GDC weitergeleitet werden, die diese DNS-Zone hosten.
Rufen Sie die Nameserver für die von Ihnen erstellte
ManagedDNSZoneab. Für diesen Schritt müssen Siekubectlverwenden.kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyamlErsetzen Sie Folgendes:
GLOBAL_API_SERVER: der kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.DNS_ZONE_NAME: der Name Ihrer DNS-Zone.PROJECT_NAMESPACE: der Namespace Ihres Projekts. Dieses Flag ist optional, wenn Sie mitgdcloud config set projectein Standardprojekt global festgelegt haben.
Die Nameserver werden in der Statusausgabe aufgeführt:
apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: example.com description: "Public DNS zone for example.com" visibility: PUBLIC status: … nameServers: - ns.managed-dns-public.gdc1.staging.gpcdemolabs.comAktualisieren Sie den DNS-Resolver in Ihrem Netzwerk, um DNS-Anfragen für die neue Zone weiterzuleiten. In diesem Beispiel muss der DNS-Resolver aktualisiert werden, um Anfragen für
example.comanns.managed-dns-public.gdc1.staging.gpcdemolabs.comweiterzuleiten. Bei dieser Konfiguration wird davon ausgegangen, dass der Resolver bereits die Konfiguration hat, die zum Weiterleiten von DNS-Anfragen für die Infrastruktur-DNS-Zonegdc1.staging.gpcdemolabs.comvon GDC erforderlich ist.
Private DNS-Zone erstellen
Sie können eine private DNS-Zone mit der gdcloud CLI oder der Kubernetes API erstellen.
gdcloud
Verwenden Sie zum Erstellen einer privaten DNS-Zone den Befehl gdcloud dns managed-zones create.
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PRIVATE \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
Ersetzen Sie Folgendes:
DNS_ZONE_NAME: der Name Ihrer DNS-Zone.DOMAIN_NAME: der Domainname für Ihre private DNS-Zone, z. B.example.com.DESCRIPTION: eine Beschreibung für Ihre DNS-Zone. Beispiel:Private DNS zone for example.com. Dieses Feld ist optional.PROJECT_NAMESPACE: der Namespace Ihres Projekts. Dieses Flag ist optional, wenn Sie mitgdcloud config set projectein Standardprojekt global festgelegt haben.--async: Geben Sie dies an, wenn der Befehl sofort zurückgegeben werden soll, anstatt auf den Abschluss des Vorgangs zu warten. Sie könnendescribeverwenden, um den Status des Vorgangs zu prüfen.
API
Verwenden Sie die Kubernetes API, um eine private DNS-Zone zu erstellen:
Erstellen Sie eine
ManagedDNSZone-Ressource und wenden Sie sie an, um eine DNS-Zone zu erstellen, auf die nur innerhalb der Standard-Kunden-VPC zugegriffen werden kann:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PRIVATE EOFErsetzen Sie Folgendes:
GLOBAL_API_SERVER: der kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.DNS_ZONE_NAME: der Name Ihrer DNS-Zone.PROJECT_NAMESPACE: der Namespace Ihres Projekts.DOMAIN_NAME: der Domainname für Ihre private DNS-Zone, z. B.example.com.DESCRIPTION: eine Beschreibung für Ihre DNS-Zone. Beispiel:Private DNS zone for example.com. Dieses Feld ist optional.
Beachten Sie, dass bei
visibilitydie Groß-/Kleinschreibung berücksichtigt wird und der Wert genauPRIVATElauten muss.