Neste documento, você verá como configurar o DNS para um cluster de administrador ou de usuário.
A configuração de DNS de um cluster é mantida em um recurso personalizado de ClusterDNS
chamado default
. Esse é um recurso de todo o cluster; ou seja, sem
namespace.
Ver o recurso ClusterDNS
Para ver o recurso ClusterDNS:
kubectl --kubeconfig CLUSTER_KUBECONFIG get clusterdns default --output yaml
Substitua CLUSTER_KUBECONFIG pelo caminho do arquivo kubeconfig do cluster.
A configuração de DNS está na seção spec
. Se a seção spec
estiver vazia
ou ausente, o cluster usará uma configuração padrão do Kubernetes CoreDNS.
Alterar a configuração de DNS
Crie um manifesto para um recurso ClusterDNS chamado default
. Preencha o spec
como quiser. Exemplo:
apiVersion: networking.gke.io/v1alpha1 kind: ClusterDNS metadata: name: default spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 8.8.4.4 domains: - name: altostrat.com nameservers: - serverIP: 198.51.100.0.1 - name: my-own-personal-domain.com nameservers: - serverIP: 203.0.113.1 - serverIP: 203.0.113.2 serverPort: 54 googleAccess: private
Salve o manifesto em um arquivo chamado my-dns.yaml
e aplique o recurso ao
cluster:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml
Especificação do ClusterDNS
spec.upstreamNameservers
Uma matriz de objetos, cada uma com um endereço IP de servidor e, opcionalmente, uma porta de servidor. O valor padrão da porta do servidor é 53.
Os servidores de nomes upstream padrão. Por padrão, as solicitações de domínios que não são de cluster são encaminhadas para esse conjunto de servidores. Exemplo:
spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 1.2.3.4 serverPort: 54
Se você não especificar nenhum valor para upstreamNameservers
, o provedor de DNS usará o arquivo /etc/resolve.conf
no nó para encontrar a lista de
servidores de nomes upstream.
spec.domains
Configuração para domínios específicos. Isso permite substituir a configuração
em upstreamNameservers
.
Use esta seção para configurar diferentes servidores de nomes upstream para domínios específicos, separadamente dos servidores de nomes upstream padrão.
Também é possível ativar o registro de consultas de um domínio. Isso pode ser feito para qualquer domínio especificado ou o domínio do cluster, cluster.local.
Exemplo:
spec: domains: - name: altostrat.com nameservers: - serverIP: 203.0.113.1 - name: my-own-personal-domain.com nameservers: - serverIP: 198.51.100.1 - serverIP: 198.51.100.2 serverPort: 50000 - name: cluster.local queryLogging: true
spec.googleAccess
String. Se quiser que os domínios do Google sejam resolvidos para endereços IP de acesso privado,
defina-o como "private"
. Se você quiser que os domínios do Google sejam resolvidos para
endereços IP de acesso restrito, defina-o como restricted
. Se você não quiser
tratamento especial para domínios do Google, defina-o como default
ou remova-o. Se você quiser
mais informações, consulte
Como configurar o Acesso privado do Google para hosts locais.
Exemplo:
spec: googleAccess: private
spec.orderPolicy
String. Se você quiser especificar a política de ordenamento pela qual os servidores upstream são
selecionados. O padrão é "random"
. Os tipos aceitos são "random"
,"round_robin"
e "sequential"
. Essa política de pedidos também será aplicada a
domínios definidos. Consulte os documentos do coredns para mais
informações sobre policy
e para que serve cada configuração.
Exemplo:
spec: orderPolicy: sequential