DNS e descoberta de serviços

Neste tópico, descrevemos como os clusters do Anthos na AWS interagem com os serviços de nome de domínio (DNS) na nuvem privada virtual (VPC) da AWS e nos clusters.

DNS da AWS AWS

Nesta seção, descrevemos como configurar uma nuvem privada virtual (VPC, na sigla em inglês) da AWS para clusters do Anthos na AWS (GKE na AWS).

Como configurar o DNS da VPC

Os clusters do Anthos na AWS são compatíveis com várias configurações de DNS na VPC da AWS. Você define as configurações de DNS da VPC ao criar um conjunto de opções de DHCP. Para mais informações, consulte Suporte a DNS para sua VPC.

É possível configurar as seguintes opções:

Nomes dos hosts DNS
Isso define se as instâncias do EC2 com endereços IP públicos recebem nomes de host DNS públicos correspondentes. Defina esse valor usando o campo enableDNSHostnames no conjunto de opções de DHCP da VPC. Para mais informações, consulte Nomes de host DNS da VPC e Conjuntos de opções DHCP para sua VPC.
Nomes de host DNS do 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 o conjunto de opções de DHCP da VPC usa o servidor DNS Route53 da AWS (com a opção AmazonProvidedDNS) ou um servidor DNS hospedado.

Configurações de DNS da VPC compatíveis

A tabela a seguir inclui configurações de DNS compatíveis com os clusters do Anthos na AWS:

Ativar nomes de host DNS Nomes de host DNS do EC2 Servidor DNS Compatível?
true Padrão Rota53 da AWS Sim
false Padrão Rota53 da AWS Sim
true Personalizado Rota53 da AWS Sim
false Personalizado Rota53 da AWS Sim
true Personalizado Hospedado Sim
false Personalizado Hospedado Sim
true Padrão Hospedado Não
false Padrão Hospedado Não

Descoberta de serviços

A descoberta de serviços é o processo em que as cargas de trabalho descobrem serviços sem conhecer o endereço IP. Nesta seção, descrevemos como os clusters do Anthos na AWS (GKE na AWS) implementam 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.zone

Em que:

  • service: o nome do serviço
  • namespace: o namespace do serviço
  • zone: a zona da AWS do serviço

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

CoreDNS

Os clusters do Anthos na AWS usam o CoreDNS para resolver nomes DNS dentro dos clusters. O CoreDNS é executado como uma implantação redundante e escalonada no namespace kube-system. A implantação do CoreDNS inclui um serviço que agrupa os pods do CoreDNS e atribui a eles um único endereço IP. A implantação do CoreDNS é escalonada com o tamanho e o uso do cluster.

NodeLocal DNSCache

Os clusters do Anthos na AWS usam o DNSCache NodeLocal para melhorar o desempenho da busca DNS. O NodeLocal DNSCache é executado como um DaemonSet em cada nó do cluster. Quando um pod faz uma solicitação DNS, a solicitação vai primeiro para o cache DNS no mesmo nó. Se o cache não conseguir resolver a solicitação DNS, ele encaminhará a solicitação para:

  • O 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

Calico

Os clusters do Anthos na AWS usam o Calico para estabelecer o roteamento BGP entre os nós do cluster.

A seguir