全部产品
Search
文档中心

Container Service for Kubernetes:Aktifkan penemuan layanan berdasarkan Alibaba Cloud DNS PrivateZone

更新时间:Jul 02, 2025

Jika Anda ingin memetakan nama domain privat di satu atau lebih virtual private cloud (VPC) ke alamat IP dan memblokir akses ke nama domain privat ini dari jaringan lain, gunakan fitur penemuan layanan berdasarkan Alibaba Cloud DNS PrivateZone. ACK Serverless menyediakan fitur penemuan layanan untuk menyelesaikan dan mengelola nama domain privat dalam VPC. Fitur ini mendukung Layanan intranet, Layanan tanpa kepala, dan Layanan ClusterIP.

Prasyarat

  • Alibaba Cloud DNS PrivateZone telah diaktifkan di Konsol DNS Alibaba Cloud.

    Pilih wilayah tempat PrivateZone tersedia. PrivateZone tidak didukung di wilayah Uni Emirat Arab (Dubai).

  • Sebuah kluster ACK Serverless telah dibuat dan komponen PrivateZone telah diaktifkan.

    • Metode 1: Untuk mengaktifkan komponen pada kluster ACK Serverless baru, pilih PrivateZone untuk parameter Penemuan Layanan saat membuat kluster.

      image.png

    • Metode 2: Untuk mengaktifkan komponen pada kluster ACK Serverless yang sudah ada, atur parameter enablePrivateZone di ConfigMap eci-profile menjadi true.

  • Klien kubectl terhubung ke kluster.

Penagihan

Untuk informasi lebih lanjut tentang aturan penagihan Alibaba Cloud DNS PrivateZone, lihat Harga.

Prosedur

  1. Deploy Deployment dan buat Layanan.

    Blok kode berikut adalah contoh template. Salin konten YAML berikut ke file YAML dan jalankan perintah kubectl create -f nginx-service.yaml untuk membuat Layanan.

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-headless-service
    spec:
      ports:
      - port: 80
        protocol: TCP
      selector:
        app: nginx
      clusterIP: None
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-clusterip-service
    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/alicloud-loadbalancer-address-type: intranet
    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
        spec:
          containers:
          - name: nginx
            image:  nginx:alpine
            ports:
            - containerPort: 80
  2. Jalankan perintah berikut untuk memeriksa status Deployment:

    kubectl get svc,pod,deployment
  3. Masuk ke Konsol DNS Alibaba Cloud.

  4. Di panel navigasi sebelah kiri, klik Private DNS (PrivateZone). Di bagian kanan atas halaman, klik Configuration Mode dan pilih tab Built-in Authoritative Module. Lalu, klik User Defined Zones.

  5. Di tab User Defined Zones, klik Resource Records Settings di kolom Actions untuk nama domain yang ingin Anda kelola.

    Catatan

    Rekaman PrivateZone menggunakan format $svc.$ns untuk menyelesaikan nama domain ke alamat IP. Perhatikan aturan berikut saat membuat rekaman PrivateZone:

    • Layanan LoadBalancer hanya sesuai dengan satu rekaman PrivateZone. Rekaman tersebut memetakan Layanan ke alamat IP instance Server Load Balancer (SLB).

    • Layanan ClusterIP hanya sesuai dengan satu rekaman PrivateZone. Rekaman tersebut memetakan Layanan ke alamat IP kluster.

    • Layanan tanpa kepala sesuai dengan beberapa rekaman PrivateZone. Rekaman-rekaman tersebut memetakan Layanan ke alamat IP pod backend.

    Anda dapat mengakses Layanan dalam VPC melalui nama domain privat Layanan tersebut.

    • Gunakan $svc.$ns.svc.cluster.local.$clusterId untuk mengakses Layanan yang ditemukan di kluster saat ini. Anda juga dapat menggunakan nama domain panjang untuk mengakses Layanan di kluster lain setelah menggunakan Alibaba Cloud DNS PrivateZone untuk menemukan Layanan-Layanan tersebut.

    • Gunakan $svc untuk mengakses Layanan di namespace saat ini dan $svc.$ns untuk mengakses Layanan di namespace lain.

    Untuk informasi lebih lanjut, lihat serverless-k8s-examples.

Referensi

Selain Alibaba Cloud DNS PrivateZone, Anda juga dapat menggunakan CoreDNS untuk menyediakan layanan resolusi DNS di kluster ACK Serverless. Untuk informasi lebih lanjut, lihat Cara kerja resolusi DNS di kluster ACK Serverless.