Todos os produtos
Search
Central de documentação

Container Compute Service:Políticas de DNS e resolução de nomes de domínio

Última atualização: Jun 29, 2026

Utilize o parâmetro dnsPolicy para configurar políticas de DNS em pods de um cluster Container Compute Service (ACS).

Funcionamento da resolução de DNS no ACS

Em um cluster ACS, o CoreDNS é implantado na nuvem. O cluster utiliza o Service kube-dns para expor o CoreDNS, e as consultas de DNS originadas nos pods são encaminhadas ao servidor DNS definido na configuração do pod do CoreDNS. Para visualizar detalhes sobre o Service kube-dns, execute:

kubectl get svc kube-dns -n kube-system

Para obter mais informações sobre a resolução de DNS em clusters Kubernetes, consulte Visão geral do DNS.

Políticas de DNS

Os clusters ACS suportam quatro valores para dnsPolicy:

Política

Descrição

ClusterFirst

Padrão. Encaminha as consultas de DNS por meio do CoreDNS. O arquivo /etc/resolv.conf no pod contém o endereço do kube-dns.

None

Ignora todas as configurações de DNS do cluster. Exige um bloco dnsConfig para definir uma configuração personalizada de DNS. Sem o dnsConfig, o pod não consegue resolver nenhum nome de domínio.

Default

Utiliza o Alibaba Cloud DNS para resolução. O CoreDNS não é utilizado.

ClusterFirstWithHostNet

Como os pods do ACS não suportam rede do host, esta política equivale a ClusterFirst. Para mais detalhes, consulte Limites de aplicações Kubernetes.

Configure uma política de DNS

Usar o CoreDNS (ClusterFirst)

Defina dnsPolicy: ClusterFirst para rotear as consultas de DNS do pod através do CoreDNS do cluster. Adote esta política quando os pods precisarem resolver Services implantados no mesmo cluster ACS.

apiVersion: v1
kind: Pod
metadata:
  name: alpine
  namespace: default
spec:
  containers:
  - image: alpine # Replace with the actual image you use.
    command:
      - sleep
      - "10000"
    imagePullPolicy: Always
    name: alpine
  dnsPolicy: ClusterFirst

Verificação: Após a inicialização do pod, verifique sua configuração de DNS:

kubectl exec alpine -- cat /etc/resolv.conf

A saída deve exibir o IP de cluster do kube-dns como nameserver.

Usar uma configuração de DNS personalizada (None)

Configure dnsPolicy: None e adicione um bloco dnsConfig para ter controle total sobre a resolução de DNS do pod. Esta opção é ideal quando os pods precisam utilizar um servidor DNS específico fora do cluster.

apiVersion: v1
kind: Pod
metadata:
  name: alpine
  namespace: default
spec:
  containers:
  - image: alpine # Replace with the actual image you use.
    command:
      - sleep
      - "10000"
    imagePullPolicy: Always
    name: alpine
  dnsPolicy: None
  dnsConfig:
    nameservers: ["169.254.xxx.xxx"]
    searches:
    - default.svc.cluster.local
    - svc.cluster.local
    - cluster.local
    options:
    - name: ndots
      value: "2"

Campos do dnsConfig:

Campo

Descrição

nameservers

Endereços IP dos servidores DNS para o pod. Aceita até três endereços. Quando o dnsPolicy é None, pelo menos um endereço é obrigatório. Esses endereços são mesclados ao arquivo /etc/resolv.conf do pod, removendo-se as duplicatas.

searches

Domínios de busca de DNS para pesquisa de hostname. Opcional. Aceita até seis domínios. Tais domínios são anexados à lista de busca base gerada pela política de DNS, com remoção de duplicatas.

options

Lista de opções do resolvedor de DNS. Cada item possui um name (obrigatório) e um value opcional. As opções são combinadas à lista gerada, eliminando entradas repetidas.

Verificação: Depois que o pod iniciar, confirme a configuração de DNS gravada no contêiner:

kubectl exec alpine -- cat /etc/resolv.conf

Com a configuração de exemplo acima, a saída será semelhante a:

nameserver 169.254.xxx.xxx
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:2

Para consultar a especificação completa do dnsConfig, acesse DNS for Services and Pods.

Usar o Alibaba Cloud DNS (Default)

Defina dnsPolicy: Default caso os pods não precisem acessar outros Services no cluster ACS. Nesse cenário, o Alibaba Cloud DNS gerencia a resolução de nomes, sem uso do CoreDNS.

apiVersion: v1
kind: Pod
metadata:
  name: alpine
  namespace: default
spec:
  containers:
  - image: alpine # Replace with the actual image you use.
    command:
      - sleep
      - "10000"
    imagePullPolicy: Always
    name: alpine
  dnsPolicy: Default

Verificação: Após o início do pod, verifique se o nameserver aponta para o Alibaba Cloud DNS em vez do kube-dns:

kubectl exec alpine -- cat /etc/resolv.conf

Próximos passos