Crea zone DNS

Questo documento ti guida nella configurazione della risoluzione DNS per un nuovo dominio in Google Distributed Cloud (GDC) air-gapped tramite l'utilizzo di zone DNS. Utilizza una zona DNS per raggruppare un insieme di record DNS e controllare se questi record sono visibili al di fuori del tuo Virtual Private Cloud (VPC) in GDC.

Il pubblico di destinazione di questo documento è costituito da amministratori di piattaforme e operatori di applicazioni responsabili della gestione della risoluzione DNS per la propria organizzazione.

Puoi creare zone DNS pubbliche o private nel tuo ambiente GDC per soddisfare i requisiti di visibilità e accesso dei tuoi servizi:

  • Per i servizi che richiedono visibilità e accesso alla rete esterna: configura una zona DNS pubblica per consentire a utenti e sistemi esterni alla tua rete di accedere al tuo servizio. Se hai un sito web, un'API pubblica o qualsiasi servizio che deve essere raggiungibile dall'esterno del tuo ambiente GDC Cloud, hai bisogno di una zona DNS pubblica per mappare il tuo nome di dominio agli indirizzi IP appropriati.
  • Per i servizi che richiedono un accesso sicuro e limitato ai sistemi interni: configura una zona DNS privata per nascondere il nome di dominio interno e limitare l'accesso ai servizi interni. Se hai un'applicazione interna, un database o un microservizio che deve comunicare con altri servizi interni utilizzando solo protocolli sicuri e indirizzi IP privati, hai bisogno di una zona DNS privata per mappare il tuo nome di dominio agli indirizzi IP appropriati. Una zona DNS privata garantisce che questi servizi possano trovarsi utilizzando nomi di dominio interni senza esporre la loro esistenza o i loro indirizzi IP alla rete esterna. Ciò migliora la sicurezza e semplifica la rete interna.

Per saperne di più sulla differenza tra zone DNS pubbliche e private, consulta Tipi di zone per Cloud DNS.

Prima di iniziare

Per configurare le zone DNS in GDC e aggiungere record, devi disporre di:

  • Un progetto esistente. Per saperne di più, consulta Creare un progetto.
  • I ruoli di identità e accesso necessari. Per gestire le zone DNS per il tuo progetto, chiedi all'amministratore IAM progetto di concederti il ruolo Amministratore progetto DNS gestito (managed-dns-project-admin).
  • Per utilizzare la CLI gdcloud, assicurati di averla installata. Per saperne di più, consulta Installare la CLI gdcloud.
  • Se utilizzi kubectl, un file kubeconfig per il server API globale. Se non hai ancora generato questo file, consulta Accedere. Per saperne di più, consulta Server API globali e di zona.

Creare una zona DNS pubblica

Dopo aver creato una zona DNS pubblica, devi configurare il resolver DNS della rete per inoltrare le richieste ai server dei nomi appropriati.

Creare la zona

Puoi creare una zona DNS pubblica utilizzando la CLI gdcloud o l'API Kubernetes.

gdcloud

Per creare una zona DNS pubblica, utilizza il gdcloud dns managed-zones create comando:

gdcloud dns managed-zones create DNS_ZONE_NAME \
    --dns-name=DOMAIN_NAME \
    --visibility=PUBLIC \
    --description="DESCRIPTION" \
    [--project=PROJECT_NAMESPACE] \
    [--async]

Sostituisci quanto segue:

  • DNS_ZONE_NAME: il nome della zona DNS.
  • DOMAIN_NAME: il nome di dominio della zona DNS pubblica, ad esempio example.com.
  • DESCRIPTION: una descrizione della zona DNS. Ad esempio, Public DNS zone for example.com. Questo campo è facoltativo.
  • PROJECT_NAMESPACE: lo spazio dei nomi del progetto. Questo flag è facoltativo se hai impostato un progetto predefinito a livello globale utilizzando gdcloud config set project.
  • --async: specifica questo valore se vuoi che il comando venga restituito immediatamente, anziché attendere il completamento dell'operazione. Puoi utilizzare describe per controllare lo stato di l'operazione.

API

Utilizza l'API Kubernetes in GDC per creare una zona DNS pubblica:

  1. Crea e applica una risorsa ManagedDNSZone per creare una zona DNS accessibile dall'esterno di GDC:

    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
    

    Sostituisci quanto segue:

    • GLOBAL_API_SERVER: il percorso kubeconfig del server API globale. Per saperne di più, consulta Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta Accedere per maggiori dettagli.
    • DNS_ZONE_NAME: il nome della zona DNS.
    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
    • DOMAIN_NAME: il nome di dominio della zona DNS pubblica, ad esempio example.com.
    • DESCRIPTION: una descrizione della zona DNS. Ad esempio, Public DNS zone for example.com. Questo campo è facoltativo.

    Tieni presente che visibility è sensibile alle maiuscole e deve avere il valore esatto PUBLIC.

Configurare il resolver DNS

Per una zona DNS pubblica, devi configurare il resolver DNS nella tua rete per inoltrare le richieste DNS per quella zona DNS ai server dei nomi in GDC che ospitano la zona DNS.

  1. Recupera i server dei nomi per la ManagedDNSZone che hai creato. Per questo passaggio devi utilizzare kubectl.

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

    Sostituisci quanto segue:

    • GLOBAL_API_SERVER: il percorso kubeconfig del server API globale. Per saperne di più, consulta Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta Accedere per maggiori dettagli.
    • DNS_ZONE_NAME: il nome della zona DNS.
    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto. Questo flag è facoltativo se hai impostato un progetto predefinito a livello globale utilizzando gdcloud config set project.

    I server dei nomi verranno elencati nell'output dello stato:

      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. Aggiorna il resolver DNS nella tua rete per inoltrare le richieste DNS per la nuova zona. In questo esempio, il resolver DNS deve essere aggiornato per inoltrare le richieste per example.com a ns.managed-dns-public.gdc1.staging.gpcdemolabs.com. Questa configurazione presuppone che il resolver abbia già la configurazione necessaria per inoltrare correttamente le richieste DNS per la zona DNS dell'infrastruttura GDC gdc1.staging.gpcdemolabs.com.

Creare una zona DNS privata

Puoi creare una zona DNS privata utilizzando la CLI gdcloud o l'API Kubernetes.

gdcloud

Per creare una zona DNS privata, utilizza il gdcloud dns managed-zones create comando:

gdcloud dns managed-zones create DNS_ZONE_NAME \
    --dns-name=DOMAIN_NAME \
    --visibility=PRIVATE \
    --description="DESCRIPTION" \
    [--project=PROJECT_NAMESPACE] \
    [--async]

Sostituisci quanto segue:

  • DNS_ZONE_NAME: il nome della zona DNS.
  • DOMAIN_NAME: il nome di dominio della zona DNS privata, ad esempio example.com.
  • DESCRIPTION: una descrizione della zona DNS. Ad esempio, Private DNS zone for example.com. Questo campo è facoltativo.
  • PROJECT_NAMESPACE: lo spazio dei nomi del progetto. Questo flag è facoltativo se hai impostato un progetto predefinito a livello globale utilizzando gdcloud config set project.
  • --async: specifica questo valore se vuoi che il comando venga restituito immediatamente, anziché attendere il completamento dell'operazione. Puoi utilizzare describe per controllare lo stato di l'operazione.

API

Utilizza l'API Kubernetes per creare una zona DNS privata:

  • Crea e applica una risorsa ManagedDNSZone per creare una zona DNS accessibile solo dall'interno del VPC cliente predefinito:

    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
    

    Sostituisci quanto segue:

    • GLOBAL_API_SERVER: il percorso kubeconfig del server API globale. Per saperne di più, consulta Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta Accedere per maggiori dettagli.
    • DNS_ZONE_NAME: il nome della zona DNS.
    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
    • DOMAIN_NAME: il nome di dominio della zona DNS privata, ad esempio example.com.
    • DESCRIPTION: una descrizione della zona DNS. Ad esempio, Private DNS zone for example.com. Questo campo è facoltativo.

    Tieni presente che visibility è sensibile alle maiuscole e deve avere il valore esatto PRIVATE.

Passaggi successivi