En este tema, se describe cómo GKE en AWS interactúa con los servicios de nombres de dominio (DNS) en tu nube privada virtual (VPC) de AWS y tus clústeres.
DNS en VPC de AWS
En esta sección, se describe cómo puedes configurar una nube privada virtual (VPC) de AWS para GKE en AWS.
Configura DNS en VPC
GKE en AWS admite una variedad de opciones de configuración de DNS en tu VPC de AWS. Establece la configuración de DNS de tu VPC cuando crees un conjunto de opciones de DHCP. Para obtener más información, consulta Compatibilidad de DNS para tu VPC.
Puedes configurar las siguientes opciones:
- Nombres de host de DNS
- Esto establece si las instancias de EC2 con direcciones IP públicas obtienen los nombres de host DNS correspondientes. Establece este valor mediante el campo
enableDNSHostnames
en el conjunto de opciones de DHCP de la VPC. Si deseas obtener más información, consulta Nombres de host de DNS en VPC y Conjuntos de opciones de DHCP para tu VPC. - Nombres de host de DNS para EC2
- Establece si las instancias de EC2 reciben un nombre de host DNS predeterminado o uno personalizado.
- Servidor DNS
- Si el conjunto de opciones de DHCP de tu VPC usa el servidor DNS Route53 de AWS (con la opción
AmazonProvidedDNS
) o un servidor DNS alojado.
Opciones de configuración de DNS en VPC compatibles
En la siguiente tabla, se incluyen configuraciones de DNS compatibles con GKE en AWS:
Habilita nombres de host para DNS | Nombres de host de DNS para EC2 | Servidor DNS | ¿Es compatible? |
---|---|---|---|
true |
Predeterminada | AWS Route53 | Sí |
false |
Predeterminada | AWS Route53 | Sí |
true |
Personalizada | AWS Route53 | Sí |
false |
Personalizada | AWS Route53 | Sí |
true |
Personalizada | Alojada | Sí |
false |
Personalizada | Alojada | Sí |
true |
Predeterminada | Alojada | No |
false |
Predeterminada | Alojada | No |
Descubrimiento de servicios
El descubrimiento de servicios es el proceso en el que las cargas de trabajo descubren los servicios sin conocer su dirección IP. En esta sección, se describe cómo GKE en AWS implementa el descubrimiento de servicios y el DNS administrado.
Kubernetes genera automáticamente nombres de servicios que usan la siguiente especificación:
service.namespace.svc.zone
Aquí:
service
: es el nombre del servicio.namespace
: es el espacio de nombres de tu servicio.zone
: es la zona de AWS de tu servicio.
Las cargas de trabajo también acceden a servicios externos, como example.net
, mediante nombres de DNS. Si deseas obtener más información sobre el comportamiento de DNS en Kubernetes, consulta DNS para servicios y Pods.
CoreDNS
GKE en AWS usa CoreDNS para resolver los nombres de DNS dentro de los clústeres. CoreDNS se ejecuta como una implementación redundante y escalada en el espacio de nombres kube-system
. La implementación de CoreDNS tiene un servicio que agrupa los Pods de CoreDNS y les proporciona una sola dirección IP. La implementación de CoreDNS se escala con el tamaño y el uso del clúster.
NodeLocal DNSCache
GKE en AWS usa NodeLocal DNSCache para mejorar el rendimiento de las búsquedas de DNS. NodeLocal DNSCache se ejecuta como un DaemonSet en cada nodo de tu clúster. Cuando un Pod realiza una solicitud de DNS, la solicitud primero va a la caché de DNS en el mismo nodo. Si la caché no puede resolver la solicitud de DNS, la caché reenvía la solicitud a uno de los siguientes:
- CoreDNS para un nombre interno (por ejemplo,
foo.bar.svc.cluster.local
) - El servidor DNS de Amazon, para un nombre externo (por ejemplo,
example.net
)
Calico
GKE en AWS usa Calico para establecer el enrutamiento BGP entre los nodos del clúster.
¿Qué sigue?
- Consulta la compatibilidad de DNS para tu VPC de AWS.
- Para obtener una descripción general de cómo se usa el DNS en los clústeres de Kubernetes, consulta DNS para servicios y Pods.