Configura un DNS para un clúster

En este documento, se muestra cómo configurar las opciones del proveedor de DNS del sistema de nombres de dominio para Google Distributed Cloud connected, versión 1.12.0. 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, lo que significa que no tiene 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 para configurar los parámetros de configuración de recursos que 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.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 54
  googleAccess: default

Para guardar el manifiesto en un archivo llamado my-dns.yaml y aplicar el recurso al clúster, ejecuta el siguiente comando:

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, ejecuta el siguiente comando:

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

Usa el campo spec.upstreamNameservers para especificar tus servidores de nombres ascendentes predeterminados con un array de objetos. Cada objeto tiene una dirección IP de servidor y, de forma opcional, un puerto de servidor. El valor predeterminado para el puerto del servidor es 53. Las solicitudes de dominios que no son de clúster se reenvían a este conjunto de servidores 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/resolv.conf en el nodo para buscar la lista de servidores de nombres ascendentes.

spec.domains

Usa el campo spec.domains 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 activar el registro de consultas para cualquier dominio especificado o el dominio del clúster, cluster.local.

Esta es una configuración de spec.domains de ejemplo:

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

spec.googleAccess

El campo spec.googleAccess es una cadena que configura la resolución de DNS para los dominios que usan las APIs y los servicios globales de Google. Este campo acepta los siguientes valores:

  • default: De forma predeterminada, la resolución de DNS asigna dominios globales de la API de Google a las direcciones IP predeterminadas. El clúster no personaliza la resolución de DNS para los dominios globales de la API de Google. Para obtener más información, consulta Direcciones IP para los dominios predeterminados. Si no especificas un valor en el campo googleAccess, el sistema usa default.

  • private: Asigna la resolución de DNS para los dominios globales de la API de Google a las direcciones IP que usa private.googleapis.com.

  • restricted: Asigna la resolución de DNS para los dominios globales de la API de Google a las direcciones IP que usa restricted.googleapis.com.

En el siguiente ejemplo, se muestra cómo configurar la resolución de DNS para usar private.googleapis.com:

spec:
  googleAccess: private

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