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