全部产品
Search
文档中心

Container Service for Kubernetes:Service discovery pada node virtual berdasarkan Alibaba Cloud DNS PrivateZone

更新时间:Feb 03, 2026

Node virtual ACK mendukung service discovery berdasarkan Alibaba Cloud DNS PrivateZone. Fitur ini menyinkronkan record DNS dari Service tipe Headless, ClusterIP, dan LoadBalancer internal ke PrivateZone. Topik ini menjelaskan cara mengaktifkan PrivateZone dan menyinkronkan record DNS Service yang terikat ke Pod ECI ke PrivateZone, sehingga Anda dapat mengakses Service tersebut menggunakan nama domain.

Gambaran umum

Alibaba Cloud DNS PrivateZone (resolusi DNS internal) merupakan layanan resolusi DNS komprehensif untuk skenario intranet perusahaan, terutama di lingkungan VPC Alibaba Cloud. Layanan ini menyediakan resolusi nama domain dan akselerasi nama domain internal bagi berbagai client (seperti instans ECS dan kontainer) dalam jaringan intranet VPC. Penggunaan PrivateZone dikenai biaya. Untuk informasi selengkapnya, lihat Penagihan.

Prasyarat

Mengaktifkan PrivateZone

  1. Ubah konfigurasi eci-profile untuk mengaktifkan PrivateZone.

    1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel navigasi sebelah kiri, pilih Configurations > ConfigMaps.

    3. Pilih Namespace sebagai kube-system, temukan eci-profile, lalu klik Edit.

    4. Ubah nilai enablePrivateZone menjadi true, lalu klik OK.

  2. Konfirmasi bahwa PrivateZone telah diaktifkan.

    1. Di panel navigasi sebelah kiri Konsol DNS Alibaba Cloud, klik Private Zone.

    2. Pada tab Custom Domain Names, di bagian Built-in Authority, verifikasi bahwa zona bernama Svc.cluster.local.<cluster ID> telah dibuat.

Menyinkronkan record DNS Service ke PrivateZone

  1. Buat Deployment dan Service untuk pengujian.

    1. Simpan konten YAML berikut sebagai test-pz.yaml.

      YAML berikut membuat satu Deployment dan tiga Service dengan tipe Headless, ClusterIP, dan LoadBalancer.

      Penting

      Secara default, record DNS Service tidak disinkronkan ke PrivateZone. Setelah Anda menambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-private-zone-enable: "true" ke suatu Service, controller node virtual akan menyinkronkan record DNS Service tersebut ke 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"          # Tambahkan label khusus untuk menjadwalkan pod ke ECI
          spec:
            containers:
            - name: nginx
              image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
              ports:
              - containerPort: 80
    2. Buat Deployment dan Service tersebut.

      kubectl create -f test-pz.yaml
  2. Konfirmasi bahwa record DNS Service telah disinkronkan ke PrivateZone.

    1. Di panel navigasi sebelah kiri Konsol DNS Alibaba Cloud, klik Private Zone.

    2. Pada tab Custom Domain Names, di bagian Built-in Authority, temukan zona bernama Svc.cluster.local.<cluster ID>, lalu klik Resolution Settings.

    3. Pada tab DNS Records, Anda dapat melihat bahwa record DNS Service telah disinkronkan secara otomatis.

      Format record DNS di zona tersebut merupakan <service-name>.<namespace>, yang sesuai dengan resolusi IP masing-masing. Aturan resolusinya sebagai berikut:

      • Headless Service: sesuai dengan beberapa record DNS, masing-masing merepresentasikan alamat IP dari sebuah Pod backend.

      • ClusterIP Service: sesuai dengan satu record DNS untuk Cluster IP (alamat IP virtual yang ditetapkan oleh kluster untuk komunikasi internal).

      • LoadBalancer Service: sesuai dengan satu record DNS untuk Cluster IP (alamat IP virtual yang ditetapkan oleh kluster untuk komunikasi internal).

      service解析记录

      Setelah sinkronisasi, Anda dapat mengakses Service melalui nama domain private di lingkungan VPC.

      • Akses nama domain pendek: Di dalam kluster, akses Service di namespace yang sama menggunakan <service-name>, atau akses Service di namespace lain menggunakan <service-name>.<namespace>.

      • Akses nama domain panjang: Di luar kluster, akses Service menggunakan <service-name>.<namespace>.svc.cluster.local.<clusterId>. Ini hanya berlaku untuk Headless Service.