En este documento se muestra cómo configurar las opciones del proveedor del sistema de nombres de dominio (DNS) para Google Distributed Cloud. La configuración de DNS de un clúster se encuentra en un recurso personalizado ClusterDNS llamado default
. Este recurso es de todo el clúster, es decir, no tiene espacio de nombres. El recurso personalizado ClusterDNS se aplica a todos los tipos de clústeres.
Crear el recurso ClusterDNS
Crea un manifiesto para un recurso ClusterDNS llamado default
. Rellena el spec
como quieras. 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
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 54
googleAccess: default
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
Sustituye KUBECONFIG
por la ruta al archivo kubeconfig del clúster.
Ver el recurso ClusterDNS
Para ver el recurso ClusterDNS, haz lo siguiente:
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml
Sustituye KUBECONFIG
por la ruta al archivo kubeconfig del clúster.
Especificación de ClusterDNS
En las siguientes secciones se describen las partes de la definición del recurso personalizado ClusterDNS que se usa para configurar el DNS de los clústeres. Puedes actualizar el recurso ClusterDNS de un clúster en cualquier momento.
spec.upstreamNameservers
Especifica tus servidores de nombres upstream predeterminados con una matriz de objetos, cada uno de los cuales tiene una dirección IP de servidor y, opcionalmente, un puerto de servidor. El valor predeterminado del puerto del servidor es 53. Las solicitudes de dominios que no pertenecen a ningún clúster se reenvían a esta matriz de direcciones de servidor de forma predeterminada.
A continuación, se muestra un ejemplo de configuración de upstreamNameservers
:
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 1.2.3.4
serverPort: 54
Si no especifica ningún valor para upstreamNameservers
, el proveedor de DNS usará el archivo /etc/resolv.conf
del nodo para buscar la lista de servidores de nombres ascendentes.
spec.domains
Configuración de dominios específicos. Usa esta sección para configurar diferentes servidores de nombres upstream para dominios concretos. Estos ajustes de servidor de nombres específicos del dominio anulan la configuración de upstreamNameservers
.
También puedes activar el registro de consultas de un dominio. Puedes habilitar el registro de consultas para cualquier dominio especificado o para el dominio del clúster, cluster.local.
Por 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
Enumeración (private
, restricted
o default
). Especifica cómo tratar los dominios de Google. Los valores de googleAccess
especifican el siguiente comportamiento:
default
: no se aplica ningún tratamiento especial a los dominios de Google. Si quitas el campogoogleAccess
, se producirá el mismo efecto.private
: resuelve los dominios de Google solo en direcciones IP de acceso privado.restricted
: resuelve los dominios de Google solo en direcciones IP de acceso restringido.
El siguiente ejemplo de configuración resuelve los dominios de Google solo en direcciones IP de acceso privado:
spec:
googleAccess: private
Para obtener más información, consulta el artículo Configurar Acceso privado de Google para hosts on-premise.
spec.orderPolicy
Cadena. Si quieres especificar la política de ordenación por la que se seleccionan los servidores upstream. El valor predeterminado es "random"
(ADMITE VALORES NULL). Los tipos admitidos son "random"
,"round_robin"
y "sequential"
. Ten en cuenta que esta política de pedidos también se aplicará a los dominios definidos. Consulta la documentación de coredns para obtener más información sobre policy
y lo que hace cada configuración.
Por ejemplo:
spec: orderPolicy: sequential