Vista geral da deteção de serviços e do DNS

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ço
  • namespace: 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?