Este documento mostra como configurar o DNS para um cluster de administrador ou um cluster de utilizador.
A configuração de DNS para um cluster é mantida num recurso personalizado ClusterDNS denominado default
. Este é um recurso ao nível do cluster, ou seja, não tem
espaço de nomes.
Veja o recurso ClusterDNS
Para ver o recurso ClusterDNS:
kubectl --kubeconfig CLUSTER_KUBECONFIG get clusterdns default --output yaml
Substitua CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster.
A configuração de DNS encontra-se na secção spec
. Se a secção spec
estiver vazia ou em falta, o cluster usa uma configuração CoreDNS do Kubernetes predefinida.
Altere a configuração de DNS
Crie um manifesto para um recurso ClusterDNS denominado default
. Preencha o spec
conforme pretendido. Por 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.1 - name: my-own-personal-domain.com nameservers: - serverIP: 203.0.113.1 - serverIP: 203.0.113.2 serverPort: 54 googleAccess: private
Guarde o manifesto num ficheiro denominado my-dns.yaml
e aplique o recurso ao cluster:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml
A especificação ClusterDNS
spec.upstreamNameservers
Uma matriz de objetos, cada um com um endereço IP do servidor e, opcionalmente, uma porta do servidor. O valor predefinido da porta do servidor é 53.
Os servidores de nomes a montante predefinidos. Os pedidos de domínios não pertencentes a clusters são encaminhados para este conjunto de servidores por predefinição. Por exemplo:
spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 1.2.3.4 serverPort: 54
Se não especificar valores para upstreamNameservers
, o fornecedor de DNS usa o ficheiro /etc/resolv.conf
no nó para encontrar a lista de servidores de nomes a montante.
spec.domains
Configuração para domínios específicos. Isto permite substituir a configuração em upstreamNameservers
.
Pode usar esta secção para configurar diferentes servidores de nomes upstream para domínios específicos, separadamente dos servidores de nomes upstream predefinidos.
Também pode ativar o registo de consultas para um domínio. Pode fazê-lo para qualquer domínio especificado ou para o domínio do cluster, cluster.local.
Por exemplo:
spec: domains: - name: altostrat.com nameservers: - serverIP: 198.51.100.1 - name: my-own-personal-domain.com nameservers: - serverIP: 203.0.113.1 - serverIP: 203.0.113.2 serverPort: 50000 - name: cluster.local queryLogging: true
spec.googleAccess
String. Se quiser que os domínios Google sejam resolvidos para endereços IP de acesso privado,
defina esta opção como "private"
. Se quiser que os domínios Google sejam resolvidos para endereços IP de acesso restrito, defina esta opção como restricted
. Se não quiser tratamento especial para domínios Google, defina esta opção como default
ou remova-a. Para mais
informações, consulte o artigo
Configurar o acesso privado à Google para anfitriões no local.
Por exemplo:
spec: googleAccess: private
spec.orderPolicy
String. Se quiser especificar a política de ordenação pela qual os servidores a montante são selecionados. A predefinição é "random"
. Os tipos suportados são "random"
,"round_robin"
e "sequential"
. Tenha em atenção que esta política de ordenação também se aplica aos domínios definidos. Consulte a documentação do coredns para obter mais informações sobre o policy
e o que cada configuração faz.
Por exemplo:
spec: orderPolicy: sequential