Neste documento, mostramos como configurar as opções de provedor do Sistema de Nomes de Domínio (DNS)
para o Google Distributed Cloud. A configuração de DNS de um cluster é mantida em um recurso personalizado de ClusterDNS chamado default. Esse recurso está disponível em todo o cluster, ou seja, sem namespace. O recurso personalizado do ClusterDNS se aplica a todos os tipos de cluster.
Criar o recurso ClusterDNS
Crie um manifesto para um recurso ClusterDNS chamado default. Preencha o spec para configurar as definições de recursos desejadas. 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: default
Para salvar o manifesto em um arquivo chamado my-dns.yaml e aplicar o recurso ao cluster, execute o seguinte comando:
kubectl --kubeconfig KUBECONFIG apply -f my-dns.yamlSubstitua KUBECONFIG pelo caminho para o arquivo Kubeconfig do cluster de usuário.
Ver o recurso ClusterDNS
Para ver o recurso ClusterDNS, execute o seguinte comando:
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yamlSubstitua KUBECONFIG pelo caminho para o arquivo Kubeconfig do cluster de usuário.
Especificação do ClusterDNS
As seções a seguir descrevem as partes da definição de recurso personalizado do ClusterDNS usada para configurar o DNS nos clusters. Atualize o recurso ClusterDNS de um cluster a qualquer momento.
spec.upstreamNameservers
Use o campo spec.upstreamNameservers para especificar os servidores de nomes upstream padrão com uma matriz de objetos. Cada objeto tem um endereço IP de servidor e, opcionalmente, uma porta de servidor. O valor padrão da porta do servidor é 53.
Por padrão, as solicitações de domínios que não são de cluster são encaminhadas para esse conjunto de servidores.
Confira um exemplo de configuração de upstreamNameservers:
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
Use o campo spec.domains para configurar diferentes servidores de nomes upstream para determinados domínios. Essas configurações de servidor de nomes específicas do domínio modificam a configuração em upstreamNameservers.
Também é possível ativar o registro de consultas de um domínio. É possível ativar o registro de consultas para qualquer domínio especificado ou o domínio do cluster, cluster.local.
Confira um exemplo de configuração de spec.domains:
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
O campo spec.googleAccess é uma string que configura a resolução de DNS para domínios usados pelas APIs e serviços globais do Google. Esse campo aceita os seguintes valores:
default: por padrão, a resolução de DNS mapeia domínios globais da API Google para os endereços IP padrão. O cluster não personaliza a resolução de DNS para domínios globais da API Google. Para mais informações, consulte Endereços IP para domínios padrão. Se você não especificar um valor no campogoogleAccess, o sistema usarádefault.private: mapeia a resolução de DNS para domínios globais da API Google para os endereços IP usados porprivate.googleapis.com.restricted: mapeia a resolução de DNS para domínios globais da API Google para os endereços IP usados porrestricted.googleapis.com.
O exemplo a seguir mostra como definir a resolução de DNS para usar private.googleapis.com:
spec:
googleAccess: private
Para mais informações, consulte Configurar o Acesso privado do Google para hosts locais.
spec.orderPolicy
O campo spec.orderPolicy é uma string. Use esse campo para especificar a política de ordenamento pela qual os servidores upstream são selecionados.
- O valor padrão é
random. - Os tipos compatíveis são
random,round_robinesequential. - Essa política de pedidos também se aplica a domínios definidos.
Para mais informações sobre policy e o que cada configuração faz,
consulte a documentação do coredns.
Confira um exemplo de configuração de spec.orderPolicy:
spec: orderPolicy: sequential