Este tema describe cómo GKE en AWS interactúa con los Servicios de nombres de dominio (DNS) tanto en su nube privada virtual (VPC) de AWS como en sus clústeres.
DNS de VPC de AWS
Esta sección describe cómo puedes configurar una VPC para GKE en AWS.
Configuración de DNS de VPC
GKE en AWS admite diversas configuraciones de DNS en su VPC de AWS. Configure los ajustes de DNS de su VPC al crear un conjunto de opciones de DHCP . Para obtener más información, consulte Compatibilidad de DNS para su VPC .
Puede configurar las siguientes opciones:
- Nombres de host DNS
- Esto establece si las instancias de EC2 con direcciones IP públicas obtienen los nombres de host DNS públicos correspondientes. Este valor se establece mediante el campo
enableDNSHostnames
en el conjunto de opciones DHCP de su VPC. Para obtener más información, consulte Nombres de host DNS de VPC y conjuntos de opciones DHCP para su VPC . - Nombres de host DNS de EC2
- Esto establece si las instancias EC2 reciben un nombre de host DNS predeterminado o un nombre de host DNS personalizado.
- Servidor DNS
- Si el conjunto de opciones DHCP de su VPC utiliza el servidor DNS de AWS Route53 (con la opción
AmazonProvidedDNS
) o un servidor DNS alojado.
Uso de DNS alojado
Para utilizar un DNS alojado, su plano de control y los grupos de seguridad del grupo de nodos deben permitir el tráfico saliente en el puerto TCP y UDP 53.
Configuraciones de DNS de VPC compatibles
La siguiente tabla incluye configuraciones de DNS compatibles con GKE en AWS:
Habilitar nombres de host DNS | Nombres de host DNS de EC2 | Servidor DNS | ¿Apoyado? |
---|---|---|---|
true | Por defecto | AWS Route53 | Sí |
false | Por defecto | AWS Route53 | Sí |
true | Costumbre | AWS Route53 | Sí |
false | Costumbre | AWS Route53 | Sí |
true | Costumbre | Alojado | Sí |
false | Costumbre | Alojado | Sí |
true | Por defecto | Alojado | No |
false | Por defecto | Alojado | No |
Descubrimiento de servicios
El descubrimiento de servicios es el proceso mediante el cual las cargas de trabajo descubren servicios sin conocer su dirección IP. Esta sección describe cómo GKE en AWS implementa el descubrimiento de servicios y el DNS administrado.
Kubernetes genera automáticamente nombres de servicios que utilizan la siguiente especificación :
service . namespace .svc.cluster.local
Dónde:
-
service
: el nombre de su servicio -
namespace
: el espacio de nombres de su servicio
Las cargas de trabajo también acceden a servicios externos (por ejemplo, example.net
) mediante nombres DNS. Para obtener más información sobre el comportamiento de DNS en Kubernetes, consulte DNS para servicios y pods .
CoreDNS
GKE en AWS utiliza CoreDNS para resolver nombres DNS dentro de los clústeres. CoreDNS se ejecuta como una implementación redundante y escalable en el espacio de nombres kube-system
. La implementación de CoreDNS cuenta con un servicio que agrupa los pods de CoreDNS y les asigna una única dirección IP. La implementación de CoreDNS escala según el tamaño y el uso del clúster.
Caché DNS local del nodo
GKE en AWS usa NodeLocal DNSCache para mejorar el rendimiento de las búsquedas DNS. NodeLocal DNSCache se ejecuta como un DaemonSet en cada nodo del clúster. Cuando un pod realiza una solicitud DNS, esta se dirige primero a la caché DNS del mismo nodo. Si la caché no puede resolver la solicitud DNS, la reenvía a:
- 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
¿Qué sigue?
- Obtenga información sobre la compatibilidad de DNS de AWS con su VPC .
- Para obtener una descripción general de cómo se usa DNS en los clústeres de Kubernetes, consulte DNS para servicios y pods .