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
- Leia sobre o suporte do DNS da AWS para sua VPC .
- Para uma visão geral de como o DNS é usado em clusters do Kubernetes, consulte DNS para serviços e pods .