Visão geral da descoberta de serviços e DNS

Este tópico descreve como o GKE na AWS interage com os Serviços de Nomes de Domínio (DNS) na sua Nuvem Privada Virtual (VPC) da AWS e nos clusters.

DNS da VPC da AWS

Esta seção descreve como você pode configurar uma VPC para o GKE na AWS.

Configurando o DNS da VPC

O GKE na AWS oferece suporte a diversas configurações de DNS na sua VPC da AWS. Você define as configurações de DNS da sua VPC ao criar um conjunto de opções de DHCP . Para obter mais informações, consulte Suporte a DNS para sua VPC .

Você pode configurar as seguintes opções:

Nomes de host DNS
Isso define se instâncias do EC2 com endereços IP públicos recebem nomes de host DNS públicos correspondentes. Você define esse valor usando o campo enableDNSHostnames no conjunto de opções de DHCP da sua VPC. Para obter mais informações, consulte Nomes de host DNS da VPC e conjuntos de opções de DHCP para sua VPC .
Nomes de host DNS EC2
Isso define se as instâncias do EC2 recebem um nome de host DNS padrão ou um nome de host DNS personalizado.
Servidor DNS
Se as opções de DHCP definidas na sua VPC usam o servidor DNS AWS Route53 (com a opção AmazonProvidedDNS ) ou um servidor DNS hospedado.

Usando DNS hospedado

Para usar um DNS hospedado, seu plano de controle e os grupos de segurança do pool de nós devem permitir tráfego de saída na porta TCP e UDP 53.

Configurações de DNS VPC suportadas

A tabela a seguir inclui configurações de DNS suportadas pelo GKE na AWS:

Habilitar nomes de host DNS Nomes de host DNS EC2 Servidor DNS Suportado?
true Padrão AWS Route53 Sim
false Padrão AWS Route53 Sim
true Personalizado AWS Route53 Sim
false Personalizado AWS Route53 Sim
true Personalizado Hospedado Sim
false Personalizado Hospedado Sim
true Padrão Hospedado Não
false Padrão Hospedado Não

Descoberta de serviço

A descoberta de serviços é o processo em que cargas de trabalho descobrem serviços sem conhecer o endereço IP do serviço. Esta seção descreve como o GKE na AWS implementa a descoberta de serviços e o DNS gerenciado.

O Kubernetes gera automaticamente nomes de serviço que usam a seguinte especificação :

service . namespace .svc.cluster.local

Onde:

  • service : nome do seu serviço
  • namespace : o namespace do seu serviço

As cargas de trabalho também acessam serviços externos — por exemplo, example.net — usando nomes DNS. Para obter mais informações sobre o comportamento do DNS no Kubernetes, consulte DNS para Serviços e Pods .

CoreDNS

O GKE na AWS usa o CoreDNS para resolver nomes DNS em clusters. O CoreDNS é executado como uma implantação redundante e escalonada no namespace kube-system . A implantação do CoreDNS tem um serviço que agrupa os pods do CoreDNS e atribui a eles um único endereço IP. A implantação do CoreDNS é escalonada de acordo com o tamanho e o uso do cluster.

NodeLocal DNSCache

O GKE na AWS usa o NodeLocal DNSCache para melhorar o desempenho da pesquisa de DNS. O NodeLocal DNSCache é executado como um DaemonSet em cada nó do cluster. Quando um pod faz uma solicitação de DNS, a solicitação vai primeiro para o cache de DNS no mesmo nó. Se o cache não conseguir resolver a solicitação de DNS, ele encaminha a solicitação para:

  • CoreDNS para um nome interno — por exemplo foo.bar.svc.cluster.local
  • O servidor DNS da Amazon , para um nome externo — por exemplo example.net

O que vem a seguir