All Products
Search
Document Center

Container Service for Kubernetes:Service discovery DNS

Last Updated:Sep 25, 2026

Resolusi DNS merupakan salah satu metode yang digunakan untuk penemuan layanan di kluster ACK Serverless. Topik ini menjelaskan cara kerja resolusi DNS di kluster ACK Serverless serta solusi penemuan layanan berbasis DNS yang didukungnya.

Di topik ini

Catatan penggunaan

  • Jika Anda tidak mengaktifkan komponen penemuan layanan DNS saat membuat kluster ACK Serverless, Pod secara default menggunakan server DNS yang disediakan oleh Virtual Private Cloud (VPC) untuk resolusi DNS. Dalam mode ini, resolusi nama layanan Kubernetes tidak didukung.

  • Untuk kluster ACK Serverless yang sudah ada, mengaktifkan solusi penemuan layanan DNS hanya berlaku untuk Pod yang baru dibuat. Pod yang dibuat sebelum solusi tersebut diaktifkan tidak secara otomatis mengubah file konfigurasi DNS-nya. Anda harus membuat ulang Pod tersebut agar solusi penemuan layanan baru diterapkan.

  • CoreDNS terkelola secara bertahap menggantikan CoreDNS tidak terkelola, yang pada akhirnya akan ditinggalkan. Anda mungkin tidak dapat menemukan CoreDNS tidak terkelola di Konsol di masa mendatang. Jika Anda perlu menggunakan CoreDNS tidak terkelola, silakan submit a ticket.

Kluster ACK Serverless: Cara kerja resolusi DNS

Saat Anda membuat Pod di kluster ACK Serverless, konten file /etc/resolv.conf secara default adalah sebagai berikut. File ini menentukan server DNS, domain pencarian, dan parameter lainnya.

# Alamat IP server DNS yang digunakan oleh Pod ini.
nameserver 172.xx.x.xx
# Akhiran domain yang ditambahkan saat melakukan resolusi nama layanan. Contoh berikut berlaku untuk Pod di namespace kube-system.
search kube-system.svc.cluster.local svc.cluster.local cluster.local
# Opsi lainnya
options ndots:5

Untuk informasi lebih lanjut mengenai file konfigurasi DNS dan field DNSPolicy Pod, lihat Resolusi dan konfigurasi DNS.

Kluster ACK Serverless solusi penemuan layanan DNS yang didukung

Solusi

Deskripsi

managed CoreDNS

Ini merupakan metode yang direkomendasikan. Pod menggunakan komponen managed CoreDNS untuk resolusi nama domain. ACK Serverless membuat dan memelihara CoreDNS agar berjalan dengan baik. Hal ini menghilangkan kebutuhan untuk memantau status operasional CoreDNS atau melakukan O&M manual. Selain itu, solusi ini tidak mengonsumsi instans ECI di kluster.

non-managed CoreDNS

Pod menggunakan komponen non-managed CoreDNS untuk resolusi DNS. Anda harus mengonfigurasi CoreDNS dengan benar dan terus memantau status replikanya.

PrivateZone

Pod menggunakan komponen PrivateZone untuk resolusi DNS. ACK Serverless secara otomatis membuat dan memperbarui rekaman DNS di PrivateZone.

Managed CoreDNS

Komponen managed CoreDNS mengekspos layanan DNS melalui cluster IP dari layanan kube-dns di namespace kube-system. Pod klien menggunakan managed CoreDNS sebagai berikut.

image.png

Langkah

Deskripsi

①

Saat Pod klien mengakses layanan hulu (TargetService), Pod tersebut pertama-tama mengambil alamat server DNS dari file konfigurasi DNS lokalnya (/etc/resolv.conf). Lalu, Pod tersebut mengirim kueri DNS ke alamat tersebut untuk mendapatkan alamat IP TargetService.

Dalam solusi ini, alamat server DNS adalah cluster IP dari layanan kube-dns, yang berada di namespace kube-system kluster ACK Serverless. Kluster ACK Serverless secara dinamis mengelola backend untuk cluster IP kube-dns, tanpa memerlukan intervensi pengguna.

②

Saat Pod klien meminta nama domain eksternal, managed CoreDNS meneruskan kueri DNS ke server DNS yang disediakan VPC (misalnya, 100.100.2.136 dan 100.100.2.138) untuk resolusi.

③

Setelah Pod klien menerima alamat IP layanan hulu (TargetService) dari server DNS, Pod tersebut mengirim permintaan ke alamat IP tersebut.

Aktifkan managed CoreDNS

Penting
  • Setelah Anda mengaktifkan komponen managed CoreDNS, kluster ACK Serverless secara otomatis membuat layanan ClusterIP bernama kube-dns di namespace kube-system. Jangan mengubah layanan ini.

  • Komponen managed CoreDNS sedang diluncurkan ke lebih banyak wilayah. Jika Anda tidak dapat menemukan komponen managed CoreDNS di Konsol, fitur tersebut belum tersedia di wilayah Anda. Fitur untuk menyesuaikan konfigurasi managed CoreDNS juga sedang dirilis secara bertahap. Jika Anda memerlukan fitur ini, submit a ticket untuk bantuan.

  • Metode 1: Untuk kluster ACK Serverless baru, pilih CoreDNS (Managed) untuk Service Discovery saat pembuatan kluster agar mengaktifkan komponen managed CoreDNS.

    Pada langkah Component Configuration, untuk pengaturan Service Discovery, pilih CoreDNS.

  • Metode 2: Untuk kluster ACK Serverless yang sudah ada, buka halaman detail kluster lalu pilih Operations > Add-ons. Klik tab Networking, temukan komponen CoreDNS, lalu klik Install. Untuk informasi lebih lanjut, lihat Kelola add-on.

Non-managed CoreDNS

Non-managed CoreDNS adalah komponen dalam kluster Kubernetes yang bertanggung jawab atas resolusi DNS. Komponen ini mendukung resolusi nama domain layanan internal kustom maupun nama domain eksternal. Non-managed CoreDNS menyediakan rangkaian plugin yang kaya yang memungkinkan kustomisasi tingkat kluster, seperti server DNS kustom, hosts kustom, record CNAME, dan aturan penulisan ulang. Seperti Kubernetes, proyek CoreDNS dihosting oleh Cloud Native Computing Foundation (CNCF). Untuk informasi lebih lanjut tentang CoreDNS, lihat situs web CNCF. Untuk informasi lebih lanjut tentang CoreDNS, lihat CoreDNS: DNS and Service Discovery.

Komponen non-managed CoreDNS mengekspos layanan DNS melalui cluster IP dari layanan kube-dns di namespace kube-system. Diagram berikut menggambarkan cara Pod klien menggunakan non-managed CoreDNS.

image.png

Langkah

Deskripsi

①

Saat Pod klien mengakses layanan hulu (TargetService), Pod tersebut pertama-tama mengambil alamat server DNS dari file konfigurasi DNS lokalnya (/etc/resolv.conf). Lalu, Pod tersebut mengirim kueri DNS ke alamat tersebut untuk mendapatkan alamat IP TargetService.

Dalam solusi ini, alamat server DNS adalah cluster IP dari layanan kube-dns di namespace kube-system kluster ACK Serverless.

②

Saat Pod klien meminta nama domain eksternal, CoreDNS meneruskan kueri DNS ke server DNS yang disediakan VPC (misalnya, 100.100.2.136 dan 100.100.2.138) untuk resolusi.

③

Setelah Pod klien menerima alamat IP layanan hulu (TargetService) dari server DNS, Pod tersebut mengirim permintaan ke alamat IP tersebut.

Aktifkan non-managed CoreDNS

  • Metode 1: Untuk kluster ACK Serverless baru, pilih CoreDNS untuk Service Discovery saat pembuatan kluster agar mengaktifkan komponen non-managed CoreDNS.

  • Metode 2: Untuk kluster ACK Serverless yang sudah ada, buka halaman detail kluster lalu pilih Operations > Add-ons. Klik tab Networking, temukan komponen CoreDNS, lalu klik Install. Untuk informasi lebih lanjut, lihat Kelola add-on.

PrivateZone

Alibaba Cloud DNS PrivateZone adalah layanan resolusi nama domain privat yang disediakan di lingkungan Alibaba Cloud Virtual Private Cloud (VPC). Anda dapat menggunakan controller PrivateZone untuk memantau sumber daya Service dan Endpoint di setiap namespace kluster ACK Serverless secara real time. Controller berinteraksi dengan server API untuk secara otomatis menyinkronkan nama domain sumber daya tersebut ke PrivateZone. Pod di kluster ACK Serverless dapat menggunakan layanan resolusi DNS PrivateZone untuk mengaktifkan penemuan layanan Kubernetes. Untuk informasi lebih lanjut, lihat kluster ACK ServerlessPenemuan layanan berbasis Alibaba Cloud DNS PrivateZone.

PrivateZone mengekspos layanan DNS-nya melalui server DNS yang disediakan VPC (misalnya, 100.100.2.136 dan 100.100.2.138). Diagram berikut menggambarkan cara Pod klien menggunakan PrivateZone.

image.png

Langkah

Deskripsi

①

Controller PrivateZone terhubung ke server API untuk memantau event pembuatan dan pembaruan Service di kluster.

②

Saat controller PrivateZone mendeteksi event pembuatan atau pembaruan Service, controller tersebut menyinkronkan informasi ini dengan rekaman DNS di authoritative zone di PrivateZone.

③

Saat Pod klien mengakses layanan hulu (TargetService), Pod tersebut pertama-tama mengambil alamat server DNS dari file konfigurasi DNS lokalnya (/etc/resolv.conf). Lalu, Pod tersebut mengirim kueri DNS ke alamat tersebut untuk mendapatkan alamat IP TargetService.

Dalam solusi ini, alamat server DNS adalah alamat IP server DNS yang disediakan VPC (misalnya, 100.100.2.136 dan 100.100.2.138). Server DNS mengambil rekaman resolusi yang benar dari PrivateZone dan mengembalikannya ke klien.

④

Setelah Pod klien menerima alamat IP layanan hulu (TargetService) dari server DNS, Pod tersebut mengirim permintaan ke alamat IP tersebut.

Aktifkan PrivateZone

  • Metode 1: Untuk kluster ACK Serverless baru, pilih PrivateZone untuk Service Discovery saat pembuatan kluster agar mengaktifkan komponen PrivateZone.

  • Metode 2: Untuk kluster ACK Serverless yang sudah ada, aktifkan komponen PrivateZone dengan mengatur parameter enablePrivateZone menjadi true di ConfigMap eci-profile.

FAQ

Bagaimana cara memverifikasi bahwa managed CoreDNS, non-managed CoreDNS, atau PrivateZone telah diaktifkan?

  • Managed dan non-managed CoreDNS

    Masuk ke Konsol ACK. Buka halaman detail kluster lalu pilih Operations > Add-ons. Klik tab Network. Jika muncul tulisan Installed di pojok kanan atas kartu komponen, berarti komponen tersebut telah diaktifkan.

  • PrivateZone

    Masuk ke Konsol Alibaba Cloud DNS PrivateZone. Di tab Authoritative Zone, cari Zone menggunakan ID kluster. Jika Anda menemukan zona yang namanya diakhiri dengan ID kluster, berarti komponen PrivateZone telah diaktifkan.

Bagaimana cara memverifikasi Pod menggunakan komponen managed CoreDNS, non-managed CoreDNS, atau PrivateZone?

  • Managed dan non-managed CoreDNS

    Jalankan perintah kubectl exec untuk mengakses Pod, lalu jalankan cat /etc/resolv.conf. Jika field nameserver mengarah ke alamat cluster IP layanan kube-dns di namespace kube-system, berarti Pod tersebut menggunakan komponen managed CoreDNS atau non-managed CoreDNS.

  • PrivateZone

    Jalankan perintah kubectl exec untuk mengakses Pod, lalu jalankan cat /etc/resolv.conf. Jika field nameserver mengarah ke 100.100.2.136 dan 100.100.2.138, berarti Pod tersebut menggunakan komponen PrivateZone. Catatan: Alamat IP ini hanya contoh; alamat IP aktual Anda mungkin berbeda.

Dokumen terkait