Configura un DNS para un clúster

En este documento, se muestra cómo configurar las opciones del proveedor del sistema de nombres de dominio (DNS) para GKE en Bare Metal. La configuración de DNS para un clúster se guarda en un recurso personalizado ClusterDNS llamado default. Este recurso está en todo el clúster. es decir, sin espacio de nombres. El recurso personalizado ClusterDNS se aplica a todos los tipos de clústeres.

Crea el recurso ClusterDNS

Crea un manifiesto para un recurso ClusterDNS llamado default. Completa el spec como desees. Por ejemplo:

apiVersion: networking.gke.io/v1alpha1
kind: ClusterDNS
metadata:
  name: default
spec:
  upstreamNameservers:
    - serverIP: 8.8.8.8
    - serverIP: 8.8.4.4
  domains:
    - name: altostrat.com
      nameservers:
      - serverIP: 198.51.100.0.1
    - name: my-own-personal-domain.com
      - serverIP: 203.0.113.1
      - serverIP: 203.0.113.2
        serverPort: 54
  googleAccess: private

Guarda el manifiesto en un archivo llamado my-dns.yaml y aplica el recurso al clúster:

kubectl --kubeconfig KUBECONFIG apply -f my-dns.yaml

Reemplaza KUBECONFIG por la ruta de acceso al archivo kubeconfig del clúster de usuario.

Visualiza el recurso ClusterDNS

Para ver el recurso ClusterDNS, haz lo siguiente:

kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml

Reemplaza KUBECONFIG por la ruta de acceso al archivo kubeconfig del clúster de usuario.

La especificación ClusterDNS

En las siguientes secciones, se describen las partes de la definición de recursos personalizados de ClusterDNS que usas para configurar DNS en tus clústeres. Puedes actualizar el recurso ClusterDNS para un clúster en cualquier momento.

spec.upstreamNameservers

Especifica tus servidores de nombres ascendentes predeterminados con un array de objetos, cada uno de los cuales tiene una dirección IP de servidor y, de forma opcional, un puerto del servidor. El valor predeterminado para el puerto del servidor es 53. Las solicitudes para dominios que no son de clúster se reenvían a este array de direcciones de servidor de forma predeterminada.

Esta es una configuración de upstreamNameservers de ejemplo:

spec:
  upstreamNameservers:
  - serverIP: 8.8.8.8
  - serverIP: 1.2.3.4
    serverPort: 54

Si no especificas ningún valor para upstreamNameservers, el proveedor de DNS usa el archivo /etc/resolve.conf en el nodo a fin de buscar la lista de servidores de nombres ascendentes.

spec.domains

Configuración para dominios específicos. Usa esta sección para configurar diferentes servidores de nombres ascendentes para dominios particulares. Esta configuración del servidor de nombres específica del dominio anula la configuración en upstreamNameservers.

También puedes activar el registro de consultas para un dominio. Puedes habilitar el registro de consultas para cualquier dominio especificado o el clúster, cluster.local.

Por ejemplo:

spec:
  domains:
  - name: altostrat.com
    nameservers:
    - serverIP: 203.0.113.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 198.51.100.1
    - serverIP: 198.51.100.2
      serverPort: 50000
  - name: cluster.local
    queryLogging: true

spec.googleAccess

Enumeración (private, restricted o default). Especifica cómo tratar Google domains. Los valores googleAccess especifican el siguiente comportamiento:

  • default: sin tratamiento especial para Google Domains. Quitar el campo googleAccess tiene el mismo efecto.

  • private: resuelve Google domains solo en direcciones IP de acceso privado.

  • restricted: resuelve Google domains solo en direcciones IP de acceso restringido.

En el siguiente ejemplo de configuración, se resuelven los Google domains solo en direcciones IP de acceso privado:

spec:
  googleAccess: private

Si deseas obtener más información, consulta Configura el Acceso privado a Google de los hosts locales.