Descripción general de descubrimiento de servicios y DNS

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
false Por defecto AWS Route53
true Costumbre AWS Route53
false Costumbre AWS Route53
true Costumbre Alojado
false Costumbre Alojado
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?