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. 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
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. Por 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/resolv.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.
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 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.
Por 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.
Por exemplo:
spec: orderPolicy: sequential