DNS-Zonen erstellen

In diesem Dokument wird beschrieben, wie Sie die DNS-Auflösung für eine neue Domain in Google Distributed Cloud (GDC) air-gapped mithilfe von DNS-Zonen konfigurieren. Mit einer DNS-Zone können Sie eine Reihe von DNS-Einträgen gruppieren und festlegen, ob diese Einträge außerhalb Ihrer Virtual Private Cloud (VPC) in GDC sichtbar sind.

Die Zielgruppe für dieses Dokument sind Plattformadministratoren und Anwendungsoperatoren, die für die Verwaltung der DNS-Auflösung für ihre Organisation verantwortlich sind.

Sie können öffentliche oder private DNS-Zonen in Ihrer GDC-Umgebung erstellen, um die Sichtbarkeits- und Zugriffsanforderungen Ihrer Dienste zu erfüllen:

  • Für Dienste, die externe Netzwerksichtbarkeit und 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 sicheren und eingeschränkten Zugriff auf interne Systeme erfordern:Richten Sie eine private DNS-Zone ein, um Ihren internen Domainnamen auszublenden und den Zugriff auf Ihre internen Dienste einzuschränken. Wenn Sie eine interne Anwendung, Datenbank oder einen internen Microservice haben, der nur über sichere Protokolle und private IP-Adressen mit anderen internen Diensten 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 ihre Existenz oder IP-Adressen dem externen Netzwerk preiszugeben. 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

Zum Konfigurieren von DNS-Zonen in GDC und zum Hinzufügen von Einträgen 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 Projekt-IAM-Administrator , Ihnen die Rolle Managed DNS Project Admin (managed-dns-project-admin) zuzuweisen.
  • Wenn Sie die gdcloud CLI verwenden möchten, prüfen Sie, ob sie installiert ist. Weitere Informationen finden Sie unter gdcloud CLI installieren.
  • Wenn Sie kubectl verwenden, eine kubeconfig-Datei für den globalen API-Server. Wenn Sie diese Datei noch nicht generiert haben, lesen Sie 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 den gdcloud dns managed-zones create Befehl, um eine öffentliche DNS-Zone zu erstellen:

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 mit gdcloud config set project ein 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. Mit describe können Sie den Status von dem Vorgang prüfen.

API

Verwenden Sie die Kubernetes API in GDC, um eine öffentliche DNS-Zone zu erstellen:

  1. Erstellen und übernehmen Sie eine ManagedDNSZone-Ressource, 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
    EOF
    

    Ersetzen 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.

    Bei visibility wird zwischen Groß- und Kleinschreibung unterschieden und der Wert muss genau PUBLIC sein.

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.

  1. Rufen Sie die Nameserver für die erstellte ManagedDNSZone ab. Für diesen Schritt müssen Sie kubectl verwenden.

    kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyaml
    

    Ersetzen 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 mit gdcloud config set project ein 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.com
    
  2. Aktualisieren Sie den DNS-Resolver in Ihrem Netzwerk, um DNS-Anfragen für die neue Zone weiterzuleiten. In diesem Beispiel muss der DNS-Resolver so aktualisiert werden, dass Anfragen für example.com an ns.managed-dns-public.gdc1.staging.gpcdemolabs.com weitergeleitet werden. Bei dieser Konfiguration wird davon ausgegangen, dass der Resolver bereits die Konfiguration hat, die erforderlich ist, um DNS-Anfragen für die DNS-Zone der GDC-Infrastruktur gdc1.staging.gpcdemolabs.com entsprechend weiterzuleiten.

Private DNS-Zone erstellen

Sie können eine private DNS-Zone mit der gdcloud CLI oder der Kubernetes API erstellen.

gdcloud

Verwenden Sie den gdcloud dns managed-zones create Befehl, um eine private DNS-Zone zu erstellen:

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 mit gdcloud config set project ein 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. Mit describe können Sie den Status von dem Vorgang prüfen.

API

Verwenden Sie die Kubernetes API, um eine private DNS-Zone zu erstellen:

  • Erstellen und übernehmen Sie eine ManagedDNSZone-Ressource, um eine DNS-Zone zu erstellen, auf die nur aus der standardmäßigen VPC des Kunden 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
    EOF
    

    Ersetzen 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.

    Bei visibility wird zwischen Groß- und Kleinschreibung unterschieden und der Wert muss genau PRIVATE sein.

Nächste Schritte