Resolusi Domain Name System (DNS) merupakan salah satu cara untuk menerapkan penemuan layanan di Kluster ACK Serverless. Topik ini menjelaskan prinsip resolusi DNS dan solusi penemuan layanan DNS yang tersedia untuk Kluster ACK Serverless.
Indeks
Catatan
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 nama domain. Dalam mode ini, nama domain layanan Kubernetes tidak dapat diselesaikan.
Untuk Kluster ACK Serverless yang sudah ada, pengaktifan solusi penemuan layanan DNS hanya berlaku untuk Pod baru. Pod yang dibuat sebelum solusi tersebut diaktifkan tidak akan memperbarui file konfigurasi DNS-nya. Anda harus membuat ulang Pod tersebut agar dapat menggunakan solusi penemuan layanan DNS yang baru.
Komponen CoreDNS terkelola secara bertahap akan menggantikan komponen CoreDNS yang dikelola sendiri hingga komponen CoreDNS yang dikelola sendiri dihentikan. Komponen CoreDNS yang dikelola sendiri mungkin tidak tersedia lagi di Konsol di masa mendatang. Untuk menggunakan komponen CoreDNS yang dikelola sendiri, ajukan tiket untuk bantuan.
Cara kerja resolusi DNS di Kluster ACK Serverless
Saat sebuah Pod dibuat di Kluster ACK Serverless, file /etc/resolv.conf berisi konten berikut secara default. File ini menentukan server DNS, domain pencarian, dan parameter lainnya.
# nameserver menunjukkan alamat IP server DNS yang digunakan oleh Pod ini.
nameserver 172.xx.x.xx
# search menunjukkan akhiran nama domain yang ditambahkan saat suatu layanan diminta. Contoh berikut menunjukkan akhiran ketika Pod berada di namespace kube-system.
search kube-system.svc.cluster.local svc.cluster.local cluster.local
# Parameter lainnya
options ndots:5Untuk informasi lebih lanjut tentang bidang-bidang dalam file konfigurasi resolusi DNS dan Pod DNSPolicy, lihat Prinsip dan konfigurasi DNS.
Solusi penemuan layanan DNS untuk Kluster ACK Serverless
Solusi penemuan layanan DNS | Deskripsi |
Managed CoreDNS | Direkomendasikan. Pod menggunakan komponen CoreDNS terkelola untuk resolusi nama domain. ACK Serverless membuat dan mengelola CoreDNS untuk memastikan komponen tersebut berjalan dengan baik. Anda tidak perlu melakukan tugas O&M secara manual atau memantau status CoreDNS. Solusi ini tidak mengonsumsi sumber daya Elastic Container Instance (ECI) di kluster Anda. |
CoreDNS Dikelola Sendiri | Pod menggunakan komponen CoreDNS yang dikelola sendiri untuk resolusi nama domain. Anda harus mengonfigurasi CoreDNS dengan benar dan memantau status replikanya. |
PrivateZone | Pod menggunakan komponen PrivateZone untuk resolusi nama domain. ACK Serverless secara otomatis membuat dan memperbarui rekaman DNS di PrivateZone. |
Managed CoreDNS
Komponen CoreDNS terkelola mengekspos layanan DNS melalui cluster IP dari layanan kube-dns di namespace kube-system. Alur berikut menunjukkan bagaimana Pod aplikasi menggunakan CoreDNS terkelola.

Tautan | Deskripsi |
1 | Saat Pod klien mengakses layanan hulu (TargetService), Pod tersebut pertama-tama mendapatkan alamat server DNS dari file konfigurasi resolusi DNS lokal ( Dalam solusi ini, alamat server DNS adalah alamat IP layanan kube-dns di namespace kube-system pada Kluster ACK Serverless. Backend dari cluster IP kube-dns dikelola dan diperbarui secara dinamis oleh Kluster ACK Serverless. Anda tidak perlu mengelolanya.
|
2 | Saat Pod klien meminta nama domain di luar kluster, CoreDNS terkelola meneruskan permintaan tersebut ke server DNS yang disediakan oleh VPC (100.100.2.136 dan 100.100.2.138) untuk diselesaikan. |
3 | Setelah Pod klien mendapatkan alamat IP layanan hulu (TargetService) dari server DNS, Pod tersebut mengirim permintaan ke alamat IP tersebut. |
Aktifkan komponen CoreDNS terkelola
Setelah Anda mengaktifkan komponen CoreDNS terkelola, Kluster ACK Serverless secara otomatis membuat layanan bernama kube-dns di namespace kube-system. Jangan mengubah layanan ini.
Komponen CoreDNS terkelola sedang diluncurkan secara bertahap. Jika Anda tidak menemukan komponen CoreDNS terkelola di Konsol, berarti komponen tersebut belum tersedia di wilayah saat ini. Fitur konfigurasi kustom untuk komponen CoreDNS terkelola juga sedang diluncurkan secara bertahap. Untuk menggunakan fitur ini, ajukan tiket untuk bantuan.
Metode 1: Untuk Kluster ACK Serverless baru, Anda dapat menentukan CoreDNS Terkelola sebagai metode penemuan layanan DNS saat membuat kluster untuk mengaktifkan komponen CoreDNS terkelola.

Metode 2: Untuk Kluster ACK Serverless yang sudah ada, buka halaman manajemen kluster. Pilih Operations Management > Components. Klik tab Managed CoreDNS, lalu klik Install untuk komponen Managed CoreDNS. Untuk informasi selengkapnya, lihat Manage components.
CoreDNS Dikelola Sendiri
CoreDNS yang dikelola sendiri adalah komponen dalam kluster Kubernetes yang menangani resolusi DNS. Komponen ini dapat menyelesaikan nama domain layanan kustom di dalam kluster maupun nama domain eksternal. CoreDNS yang dikelola sendiri memiliki banyak plugin dan mendukung DNS kustom, host kustom, nama kanonis (CNAME), serta penulisan ulang (rewrite) di tingkat kluster. Seperti Kubernetes, proyek CoreDNS dihosting oleh Cloud Native Computing Foundation (CNCF). Untuk informasi lebih lanjut tentang CNCF, lihat CNCF. Untuk informasi lebih lanjut tentang CoreDNS, lihat CoreDNS: DNS and Service Discovery.
Komponen CoreDNS yang dikelola sendiri mengekspos layanan DNS melalui cluster IP dari layanan kube-dns di namespace kube-system. Alur berikut menunjukkan bagaimana Pod aplikasi menggunakan CoreDNS yang dikelola sendiri.

Tautan | Deskripsi |
1 | Saat Pod klien mengakses layanan hulu (TargetService), Pod tersebut pertama-tama mendapatkan alamat server DNS dari file konfigurasi resolusi DNS lokal ( Dalam solusi ini, alamat server DNS adalah alamat IP layanan kube-dns di namespace kube-system pada Kluster ACK Serverless.
|
2 | Saat Pod klien meminta nama domain di luar kluster, CoreDNS meneruskan permintaan tersebut ke server DNS yang disediakan oleh VPC (100.100.2.136 dan 100.100.2.138) untuk diselesaikan. |
3 | Setelah Pod klien mendapatkan alamat IP layanan hulu (TargetService) dari server DNS, Pod tersebut mengirim permintaan ke alamat IP tersebut. |
Aktifkan komponen CoreDNS yang dikelola sendiri
Metode 1: Untuk Kluster ACK Serverless baru, Anda dapat menentukan CoreDNS sebagai metode penemuan layanan DNS saat membuat kluster untuk mengaktifkan komponen CoreDNS yang dikelola sendiri.

Metode 2: Untuk Kluster ACK Serverless yang sudah ada, buka halaman manajemen kluster. Pilih Operations Management > Components. Klik tab CoreDNS, lalu klik Install untuk komponen CoreDNS. Untuk informasi selengkapnya, lihat Manage components.
PrivateZone
PrivateZone adalah layanan resolusi nama domain privat berbasis lingkungan Alibaba Cloud VPC. Anda dapat menggunakan pengontrol PrivateZone untuk memantau layanan dan titik akhir di setiap namespace pada Kluster ACK Serverless secara real-time. Pengontrol berinteraksi dengan server API untuk secara otomatis menyinkronkan nama domain sumber daya ke PrivateZone. Pod di Kluster ACK Serverless kemudian dapat menggunakan layanan DNS PrivateZone untuk menerapkan penemuan layanan Kubernetes. Untuk informasi lebih lanjut tentang cara menggunakan solusi PrivateZone, lihat Penemuan layanan berdasarkan Alibaba Cloud DNS PrivateZone di Kluster ACK Serverless.
PrivateZone mengekspos layanan DNS melalui server DNS yang disediakan oleh VPC (100.100.2.136 dan 100.100.2.138). Alur berikut menunjukkan bagaimana Pod aplikasi menggunakan PrivateZone.

Tautan | Deskripsi |
1 | Pengontrol PrivateZone terhubung ke server API dan mendengarkan event pembuatan dan pembaruan layanan di kluster. |
2 | Saat pengontrol PrivateZone mendeteksi event pembuatan atau pembaruan layanan, pengontrol tersebut menyinkronkan informasi tersebut ke catatan zona otoritatif di PrivateZone. |
3 | Saat Pod klien mengakses layanan hulu (TargetService), Pod tersebut pertama-tama mendapatkan alamat server DNS dari file konfigurasi resolusi DNS lokal ( Dalam solusi ini, alamat server DNS adalah alamat IP server DNS yang disediakan oleh VPC (100.100.2.136 dan 100.100.2.138) yang dikonfigurasi dalam file konfigurasi resolusi DNS. Server DNS mendapatkan rekaman DNS yang benar dari PrivateZone dan mengembalikannya ke klien. |
4 | Setelah Pod klien mendapatkan alamat IP layanan hulu (TargetService) dari server DNS, Pod tersebut mengirim permintaan ke alamat IP tersebut. |
Aktifkan komponen PrivateZone
Metode 1: Untuk Kluster ACK Serverless baru, Anda dapat menentukan PrivateZone sebagai metode penemuan layanan DNS saat membuat kluster untuk mengaktifkan komponen PrivateZone.

Metode 2: Untuk Kluster ACK Serverless yang sudah ada, Anda dapat mengatur parameter
enablePrivateZonemenjaditruedalam item konfigurasieci-profileuntuk mengaktifkan komponen PrivateZone.
FAQ
Bagaimana cara memeriksa apakah komponen CoreDNS terkelola, CoreDNS yang dikelola sendiri, atau PrivateZone diaktifkan untuk kluster saya?
Komponen CoreDNS terkelola dan CoreDNS yang dikelola sendiri
Masuk ke Konsol Manajemen Layanan Kontainer. Di halaman manajemen kluster, pilih Operations Management > Component Management dan klik tab Network. Jika label Installed ditampilkan di pojok kanan atas komponen, ini menunjukkan bahwa komponen CoreDNS terkelola atau CoreDNS yang dikelola sendiri telah diaktifkan untuk kluster tersebut.
Gambar berikut menunjukkan contoh komponen CoreDNS terkelola.

Komponen PrivateZone
Masuk ke Konsol PrivateZone. Di tab Authoritative Zones On VPC, cari Domain Zone berdasarkan ID kluster. Jika Anda menemukan zona yang namanya diakhiri dengan ID kluster, ini menunjukkan bahwa komponen PrivateZone telah diaktifkan.
Bagaimana cara memeriksa apakah Pod aplikasi menggunakan komponen CoreDNS terkelola, CoreDNS yang dikelola sendiri, atau PrivateZone?
Komponen CoreDNS terkelola dan CoreDNS yang dikelola sendiri
Jalankan perintah
kubectl execuntuk masuk ke Pod. Jalankan perintahcat /etc/resolv.conf. Jika bidangnameserverdiatur ke alamat IP cluster dari layanan kube-dns di namespace kube-system, berarti Pod tersebut menggunakan komponen CoreDNS terkelola atau CoreDNS yang dikelola sendiri.Komponen PrivateZone
Jalankan perintah
kubectl execuntuk masuk ke Pod. Jalankan perintahcat /etc/resolv.conf. Jika bidangnameserverdiatur ke100.100.2.136dan100.100.2.138, berarti Pod tersebut menggunakan komponen PrivateZone. Alamat IP dalam contoh ini hanya sebagai referensi. Gunakan alamat IP yang sebenarnya.
