Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Service discovery for virtual nodes using Alibaba Cloud DNS PrivateZone

Última atualização: Jun 27, 2026

Os nós virtuais do ACK oferecem suporte à descoberta de serviço por meio do Alibaba Cloud DNS PrivateZone. Esse recurso sincroniza registros DNS de serviços Headless, ClusterIP e LoadBalancer interno com o PrivateZone. Este tópico descreve como ativar o PrivateZone para sincronizar registros DNS de Services associados a Pods ECI, permitindo acessá-los pelos respectivos nomes de domínio.

Informações básicas

O Alibaba Cloud DNS PrivateZone (resolução de DNS interna) é um serviço de DNS projetado para redes privadas, como as Virtual Private Clouds (VPCs) da Alibaba Cloud. Ele permite que clientes na sua VPC, como instâncias ECS e contêineres, resolvam nomes de domínio privados e acelera o processo de resolução. O PrivateZone é um serviço pago. Para mais informações, consulte Faturamento do produto.

Pré-requisitos

Ative o PrivateZone

  1. Modifique o ConfigMap eci-profile para ativar o PrivateZone.

    1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Configurations > ConfigMaps.

    3. Na lista suspensa Namespace, selecione kube-system. Localize o ConfigMap eci-profile e clique em Edit na coluna Actions.

    4. Altere o valor de enablePrivateZone para true e clique em OK.

  2. Confirme se o PrivateZone está ativado.

    1. No painel de navegação à esquerda do console do Alibaba Cloud DNS, clique em Private Zone.

    2. Na aba Authoritative Zone, clique na aba User Defined Zones. Verifique se uma zona chamada svc.cluster.local.<cluster-id> foi criada.

Sincronizar registros DNS de Service com o PrivateZone

  1. Crie um Deployment e Services para teste.

    1. Salve o conteúdo YAML a seguir como test-pz.yaml.

      Este manifesto cria um Deployment e três Services dos tipos Headless, ClusterIP e LoadBalancer interno.

      Importante

      Por padrão, os registros DNS de Service não são sincronizados. Para ativar a sincronização de um Service específico, adicione a anotação service.beta.kubernetes.io/alibaba-cloud-private-zone-enable: "true" ao manifesto correspondente. O controlador de nó virtual sincronizará automaticamente os registros DNS com o PrivateZone.

      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-headless-service
        annotations:
           service.beta.kubernetes.io/alibaba-cloud-private-zone-enable: "true"
      spec:
        ports:
        - port: 80
          protocol: TCP
        selector:
          app: nginx
        clusterIP: None
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-clusterip-service
        annotations:
           service.beta.kubernetes.io/alibaba-cloud-private-zone-enable: "true"
      spec:
        ports:
        - port: 80
          protocol: TCP
        selector:
          app: nginx
        type: ClusterIP
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-intranet-service
        annotations:
          service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
          service.beta.kubernetes.io/alibaba-cloud-private-zone-enable: "true"
      spec:
        ports:
        - port: 80
          protocol: TCP
        selector:
          app: nginx
        type: LoadBalancer
      ---  
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-deployment
        labels:
          app: nginx
      spec:
        replicas: 3
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
              alibabacloud.com/eci: "true"          # Add this label to schedule the Pod on ECI.
          spec:
            containers:
            - name: nginx
              image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
              ports:
              - containerPort: 80
    2. Crie o Deployment e os Services.

      kubectl create -f test-pz.yaml
  2. Verifique se os registros DNS de Service foram sincronizados com o PrivateZone.

    1. No painel de navegação à esquerda do console do Alibaba Cloud DNS, clique em Private Zone.

    2. Na aba Authoritative Zone, clique na aba User Defined Zones. Localize a zona chamada svc.cluster.local.<cluster-id> e clique em Settings na coluna Actions.

    3. Na aba Settings, verifique se os registros DNS de Service foram sincronizados automaticamente.

      Os registros DNS na zona usam o formato <service-name>.<namespace> e apontam para os endereços IP correspondentes. As regras de resolução são:

      • Headless Service: corresponde a vários registros DNS, um para cada endereço IP de Pod de backend.

      • ClusterIP Service: corresponde a um único registro DNS que aponta para o IP do cluster. O cluster atribui esse endereço IP virtual ao Service para comunicação interna.

      • Serviço de LoadBalancer interno: corresponde a um único registro DNS que aponta para o endereço IP da instância interna do Server Load Balancer (SLB).

      Após a sincronização dos registros, acesse os Services de dentro da VPC usando os nomes de domínio privados correspondentes.

      • Acesso por nome de domínio curto: dentro do cluster, use <service-name> para acessar um Service no mesmo namespace ou <service-name>.<namespace> para um Service em outro namespace.

      • Acesso por nome de domínio totalmente qualificado (FQDN): fora do cluster, mas na mesma VPC, use <service-name>.<namespace>.svc.cluster.local.<cluster-id> para acessar um Service. Este método aplica-se apenas a Headless Services.