Este tópico descreve como o GKE on AWS interage com os serviços de nomes de domínio (DNS) na sua nuvem virtual privada (VPC) da AWS e nos clusters.
DNS da VPC da AWS
Esta secção descreve como pode configurar uma VPC para o GKE na AWS.
Configurar o DNS da VPC
O GKE on AWS suporta várias configurações de DNS na sua VPC da AWS. Configura as definições de DNS da sua VPC quando cria um conjunto de opções de DHCP. Para mais informações, consulte o artigo Compatibilidade com DNS para a sua VPC.
Pode configurar as seguintes opções:
- Nomes de anfitrião de DNS
- Esta opção define se as instâncias do EC2 com endereços IP públicos recebem nomes de anfitriões DNS públicos correspondentes. Define este valor através do campo
enableDNSHostnames
no conjunto de opções DHCP da sua VPC. Para mais informações, consulte os artigos Nomes de anfitrião DNS da VPC e Conjuntos de opções DHCP para a sua VPC. - Nomes de anfitriões de DNS do EC2
- Isto define se as instâncias do EC2 recebem um nome do anfitrião DNS predefinido ou um nome do anfitrião DNS personalizado.
- Servidor DNS
- Se o conjunto de opções DHCP da sua VPC usa o servidor DNS do AWS Route53 (com a opção
AmazonProvidedDNS
) ou um servidor DNS alojado.
Usar DNS alojado
Para usar um DNS alojado, os grupos de segurança do plano de controlo e do conjunto de nós têm de permitir o tráfego de saída na porta TCP e UDP 53.
Configurações de DNS de VPC suportadas
A tabela seguinte inclui as configurações de DNS suportadas pelo GKE no AWS:
Ative os nomes de anfitrião de DNS | Nomes de anfitriões DNS do EC2 | Servidor DNS | Suportado? |
---|---|---|---|
true |
Predefinição | AWS Route53 | Sim |
false |
Predefinição | AWS Route53 | Sim |
true |
Personalizado | AWS Route53 | Sim |
false |
Personalizado | AWS Route53 | Sim |
true |
Personalizado | Alojado | Sim |
false |
Personalizado | Alojado | Sim |
true |
Predefinição | Alojado | Não |
false |
Predefinição | Alojado | Não |
Deteção de serviços
A deteção de serviços é o processo em que as cargas de trabalho descobrem serviços sem saber o endereço IP do serviço. Esta secção descreve como o GKE on AWS implementa a deteção de serviços e o DNS gerido.
O Kubernetes gera automaticamente nomes de serviços que usam a seguinte especificação:
service.namespace.svc.cluster.local
Onde:
service
: o nome do seu serviçonamespace
: o espaço de nomes do seu serviço
As cargas de trabalho também acedem a serviços externos, por exemplo, example.net
, usando nomes DNS. Para mais informações sobre o comportamento do DNS no Kubernetes, consulte o artigo
DNS para serviços e pods.
CoreDNS
O GKE on AWS usa o
CoreDNS
para resolver nomes DNS nos clusters. O CoreDNS é executado como uma implementação redundante e dimensionada no espaço de nomes kube-system
. A implementação do CoreDNS tem um serviço que agrupa os pods do CoreDNS e atribui-lhes um único endereço IP. A implementação do CoreDNS é dimensionada de acordo com o tamanho e a utilização do cluster.
NodeLocal DNSCache
O GKE na AWS usa o NodeLocal DNSCache para melhorar o desempenho da procura de DNS. O NodeLocal DNSCache é executado como um DaemonSet em cada nó no seu cluster. Quando um Pod faz um pedido DNS, o pedido é primeiro enviado para a cache DNS no mesmo nó. Se a cache não conseguir resolver o pedido de DNS, encaminha o pedido 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 se segue?
- Leia acerca do suporte de DNS da AWS para a sua VPC.
- Para uma vista geral de como o DNS é usado em clusters do Kubernetes, consulte o artigo DNS para serviços e pods.