Crea zonas de DNS

En este documento, se explica cómo configurar la resolución de DNS para un dominio nuevo en Google Distributed Cloud (GDC) aislado con el uso de zonas del DNS. Usa una zona del DNS para agrupar un conjunto de registros DNS y controlar si esos registros son visibles fuera de tu nube privada virtual (VPC) en GDC.

El público previsto para este documento son los administradores de plataformas y los operadores de aplicaciones responsables de administrar la resolución de DNS para su organización.

Puedes crear zonas del DNS públicas o privadas en tu entorno de GDC para que coincidan con los requisitos de visibilidad y acceso de tus servicios:

  • Para los servicios que requieren visibilidad y acceso a la red externa, configura una zona del DNS pública para permitir que los usuarios y sistemas fuera de tu red accedan a tu servicio. Si tienes un sitio web, una API pública o cualquier servicio al que se deba acceder desde fuera de tu entorno de GDC Cloud, necesitas una zona del DNS pública para asignar tu nombre de dominio a las direcciones IP adecuadas.
  • Para los servicios que requieren acceso seguro y restringido a los sistemas internos: Configura una zona del DNS privada para ocultar tu nombre de dominio interno y restringir el acceso a tus servicios internos. Si tienes una aplicación, una base de datos o un microservicio internos que necesitan comunicarse con otros servicios internos usando solo protocolos seguros y direcciones IP privadas, necesitas una zona del DNS privada para asignar tu nombre de dominio a las direcciones IP adecuadas. Una zona del DNS privada garantiza que estos servicios puedan encontrarse entre sí usando nombres de dominio internos sin exponer su existencia ni sus direcciones IP a la red externa. Esto mejora la seguridad y simplifica las herramientas de redes internas.

Para obtener más información sobre la diferencia entre las zonas del DNS públicas y privadas, consulta Tipos de zonas para Cloud DNS.

Antes de comenzar

Para configurar zonas del DNS en GDC y agregar registros, debes tener lo siguiente:

  • Un proyecto existente Para obtener más información, consulta Crea un proyecto.
  • Los roles de identidad y acceso necesarios. Para administrar las zonas del DNS de tu proyecto, pídele al administrador de IAM del proyecto que te otorgue el rol de administrador de proyectos de DNS administrado (managed-dns-project-admin).
  • Para usar la gdcloud CLI, asegúrate de tenerla instalada. Para obtener más información, consulta Instala la gdcloud CLI.
  • Si usas kubectl, un archivo kubeconfig para el servidor de la API global. Si aún no generaste este archivo, consulta Accede. Para obtener más información, consulta Servidores de la API globales y zonales.

Crea una zona del DNS pública

Después de crear una zona del DNS pública, debes configurar el agente de resolución de DNS de tu red para que reenvíe las solicitudes a los servidores de nombres adecuados.

Crea la zona

Puedes crear una zona del DNS pública con la CLI de gdcloud o la API de Kubernetes.

gdcloud

Para crear una zona del DNS pública, usa el comando 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]

Reemplaza lo siguiente:

  • DNS_ZONE_NAME: Es el nombre de tu zona del DNS.
  • DOMAIN_NAME: Es el nombre de dominio de tu zona del DNS pública, como example.com.
  • DESCRIPTION: Es una descripción para tu zona del DNS. Por ejemplo, Public DNS zone for example.com Este campo es opcional.
  • PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto. Esta marca es opcional si configuraste un proyecto predeterminado de forma global con gdcloud config set project.
  • --async: Especifica esto si quieres que el comando se devuelva de inmediato, en lugar de esperar a que se complete la operación. Puedes usar describe para verificar el estado de la operación.

API

Usa la API de Kubernetes en GDC para crear una zona del DNS pública:

  1. Crea y aplica un recurso ManagedDNSZone para crear una zona del DNS a la que se pueda acceder desde fuera de 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
    

    Reemplaza lo siguiente:

    • GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de la API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Accede para obtener más detalles.
    • DNS_ZONE_NAME: Es el nombre de tu zona del DNS.
    • PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto.
    • DOMAIN_NAME: Es el nombre de dominio de tu zona del DNS pública, como example.com.
    • DESCRIPTION: Es una descripción para tu zona del DNS. Por ejemplo, Public DNS zone for example.com Este campo es opcional.

    Ten en cuenta que visibility distingue mayúsculas de minúsculas y debe tener el valor exacto PUBLIC.

Configura tu agente de resolución de DNS

Para una zona del DNS pública, debes configurar el agente de resolución de DNS en tu red para que reenvíe las solicitudes de DNS de esa zona del DNS a los servidores de nombres en GDC que alojan esa zona del DNS.

  1. Recupera los servidores de nombres de la ManagedDNSZone que creaste. Debes usar kubectl para este paso.

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

    Reemplaza lo siguiente:

    • GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de la API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Accede para obtener más detalles.
    • DNS_ZONE_NAME: Es el nombre de tu zona del DNS.
    • PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto. Esta marca es opcional si configuraste un proyecto predeterminado de forma global con gdcloud config set project.

    Los servidores de nombres se mostrarán en el resultado del estado:

      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. Actualiza el agente de resolución de DNS en tu red para reenviar las solicitudes de DNS de la zona nueva. En este ejemplo, el agente de resolución de DNS debe actualizarse para reenviar las solicitudes de example.com a ns.managed-dns-public.gdc1.staging.gpcdemolabs.com. En esta configuración, se supone que el agente de resolución ya tiene la configuración necesaria para reenviar de forma adecuada las solicitudes de DNS para la zona del DNS de infraestructura de GDC, gdc1.staging.gpcdemolabs.com.

Crea una zona del DNS privado

Puedes crear una zona del DNS privada con la CLI de gdcloud o la API de Kubernetes.

gdcloud

Para crear una zona del DNS privada, usa el comando 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]

Reemplaza lo siguiente:

  • DNS_ZONE_NAME: Es el nombre de tu zona del DNS.
  • DOMAIN_NAME: Es el nombre de dominio de tu zona del DNS privada, como example.com.
  • DESCRIPTION: Es una descripción para tu zona del DNS. Por ejemplo, Private DNS zone for example.com Este campo es opcional.
  • PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto. Esta marca es opcional si configuraste un proyecto predeterminado de forma global con gdcloud config set project.
  • --async: Especifica esto si quieres que el comando se devuelva de inmediato, en lugar de esperar a que se complete la operación. Puedes usar describe para verificar el estado de la operación.

API

Usa la API de Kubernetes para crear una zona del DNS privada:

  • Crea y aplica un recurso ManagedDNSZone para crear una zona del DNS a la que solo se pueda acceder desde la VPC predeterminada del cliente:

    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
    

    Reemplaza lo siguiente:

    • GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de la API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Accede para obtener más detalles.
    • DNS_ZONE_NAME: Es el nombre de tu zona del DNS.
    • PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto.
    • DOMAIN_NAME: Es el nombre de dominio de tu zona del DNS privada, como example.com.
    • DESCRIPTION: Es una descripción para tu zona del DNS. Por ejemplo, Private DNS zone for example.com Este campo es opcional.

    Ten en cuenta que visibility distingue mayúsculas de minúsculas y debe tener el valor exacto PRIVATE.

¿Qué sigue?