Beban kerja dalam kluster Kubernetes menggunakan layanan Sistem Nama Domain (DNS) untuk menyelesaikan nama domain. Topik ini menjelaskan cara kerja resolusi DNS di kluster Kubernetes dan memperkenalkan CoreDNS, penyelesai DNS default yang sudah terpasang sebelumnya di kluster Alibaba Cloud Container Compute Service (ACS).
Cara kerja resolusi DNS di kluster Kubernetes
Parameter startup kubelet di kluster ACS mencakup --cluster-dns=<dns-service-ip> dan --cluster-domain=<default-local-domain>. Parameter-parameter ini menentukan alamat IP server DNS untuk kluster dan akhiran nama domain dasar untuk server tersebut.
Secara default, ACS menyebarkan satu set beban kerja di kluster untuk menjalankan CoreDNS. Sebuah Service bernama kube-dns diterapkan untuk mengekspos beban kerja ini ke kueri DNS di kluster. Dua pod bernama coredns diterapkan sebagai backend dari CoreDNS. Kueri DNS di kluster dikirim ke server DNS yang ditentukan dalam konfigurasi pod coredns. File konfigurasi DNS di pod adalah /etc/resolv.conf. File tersebut berisi konten berikut:
nameserver 172.xx.x.xx
search kube-system.svc.cluster.local svc.cluster.local cluster.local
options ndots:5Gambar 1. Cara Kerja Resolusi DNS
Nomor | Deskripsi |
① | Ketika sebuah pod klien mencoba mengakses Layanan Nginx, pod tersebut mengirim permintaan ke server DNS yang ditentukan dalam file konfigurasi DNS /etc/resolv.conf. Dalam contoh ini, alamat IP server DNS adalah 172.21.0.10, yang merupakan alamat IP dari Layanan kube-dns. Hasil resolusinya adalah 172.21.0.30. |
② | Pod klien mengirim permintaan lain ke 172.21.0.30, yang merupakan alamat IP dari Layanan Nginx. Kemudian, permintaan tersebut diteruskan ke pod backend Nginx-1 dan Nginx-2. |
Untuk informasi lebih lanjut tentang cara kerja resolusi DNS di kluster Kubernetes, lihat Konfigurasikan Resolusi DNS.
Ikhtisar CoreDNS
CoreDNS adalah penyelesai DNS untuk kluster ACS. CoreDNS dapat menyelesaikan nama domain internal kustom dan nama domain eksternal. CoreDNS menyediakan berbagai Plugin yang dapat digunakan untuk mengonfigurasi pengaturan DNS kustom serta menyesuaikan catatan host, Record CNAME, dan aturan penulisan ulang untuk kluster Kubernetes. CoreDNS dihosting oleh Asosiasi Komputasi Cloud Native (CNCF), yang juga menghosting Kubernetes.
ACS menggunakan CoreDNS untuk menerapkan penemuan layanan di kluster. Anda dapat mengonfigurasi CoreDNS sesuai dengan kebutuhan bisnis Anda untuk mendukung jumlah kueri DNS yang lebih tinggi dalam berbagai skenario.
Untuk informasi lebih lanjut tentang cara mengonfigurasi CoreDNS di kluster ACS, lihat Konfigurasikan CoreDNS Non-managed.