Neste tópico, descrevemos como o GKE na AWS interage 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 VPC para o GKE na AWS.
Como configurar o DNS da VPC
O GKE na AWS oferece suporte a 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.
Como usar o DNS hospedado
Para usar um DNS hospedado, seu plano de controle e os grupos de segurança do pool de nós precisam permitir o tráfego de saída na porta TCP e UDP 53.
Configurações de DNS da VPC compatíveis
A tabela a seguir inclui configurações de DNS compatíveis com o GKE 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 |
Personalizadas | Rota53 da AWS | Sim |
false |
Personalizadas | Rota53 da AWS | Sim |
true |
Personalizadas | Hospedado | Sim |
false |
Personalizadas | 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 saber o endereço IP deles. Nesta seção, descrevemos 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
Em que:
service
: o nome do serviçonamespace
: o namespace 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
O GKE na AWS usa o
CoreDNS
para resolver nomes DNS nos 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
O GKE na AWS usa o NodeLocal DNSCache 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
A seguir
- Leia sobre o suporte a DNS da VPC da AWS.
- Para uma visão geral de como o DNS é usado nos clusters do Kubernetes, consulte DNS para serviços e pods.