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 de VPC da AWS
Nesta seção, descrevemos como configurar uma nuvem privada virtual (VPC) da AWS para o GKE na AWS.
Como configurar o DNS de VPC
O GKE na AWS é compatível 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 abaixo 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 |
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 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.zone
Em que:
service
: o nome do serviçonamespace
: o namespace do serviçozone
: 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
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
Calico
O GKE na AWS usa o Calico para estabelecer o roteamento do BGP entre os nós do cluster.
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.