Dalam skenario tertentu, Anda perlu mengelola dan memelihara CoreDNS secara manual karena persyaratan bisnis yang sangat disesuaikan. Kluster Alibaba Cloud Container Compute Service (ACS) mendukung CoreDNS tidak dikelola, memungkinkan Anda untuk mengonfigurasi pengaturan CoreDNS kustom. Topik ini menjelaskan cara menggunakan Plugin CoreDNS tidak dikelola dalam kluster ACS.
Prasyarat
Kluster ACS telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster ACS. Jika Plugin CoreDNS diinstal di kluster ACS, uninstall Plugin CoreDNS yang dikelola dengan mengikuti prosedur instalasi yang dijelaskan dalam topik ini.
Saat membuat kluster ACS, tetapkan parameter Service Discovery ke Disable di bagian Component Configurations.
Plugin CoreDNS tidak dikelola adalah plugin standar open-source. Anda bertanggung jawab atas biaya sumber daya serta operasi dan pemeliharaan plugin tersebut. Anda juga harus menyelesaikan masalah yang mungkin muncul saat menggunakan Plugin CoreDNS.
Secara default, template plugin yang disediakan oleh ACS menggunakan mekanisme anti-afinitas untuk mendistribusikan pod di seluruh zona. Jika Anda mengonfigurasikan satu zona untuk ACS, hanya satu replika CoreDNS yang dapat berjalan sesuai harapan. Kami merekomendasikan Anda mengonfigurasi beberapa zona untuk memastikan pemulihan bencana dan ketersediaan.
Prosedur instalasi
Masuk ke Konsol ACS. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi di sebelah kiri halaman detail kluster, pilih Operations > Add-ons.
Opsional. Klik tab Network, temukan CoreDNS (Dikelola), lalu klik Uninstall. Jika Anda tidak dapat menemukan CoreDNS (Dikelola), lewati langkah ini.
PeringatanJika Anda meng-uninstall CoreDNS (Dikelola), fitur resolusi Sistem Nama Domain (DNS) dari kluster tidak tersedia. Pastikan bahwa tidak ada lalu lintas bisnis di kluster sebelum Anda meng-uninstall CoreDNS (Dikelola).
Klik tab Network, temukan CoreDNS, lalu klik Install.

Konfigurasikan parameter berdasarkan kebutuhan bisnis Anda. Setelah mengonfirmasi pengaturan, klik OK.
PentingJika Anda tidak mengonfigurasi parameter CpuRequest saat menginstal CoreDNS, sumber daya CPU yang tersedia untuk pod ACS hanya 250 millicores. Kami merekomendasikan Anda mengonfigurasi nilai parameter CpuRequest untuk mencegah pengecualian yang disebabkan oleh tekanan performa berlebih pada pod.

Gunakan kubectl untuk terhubung ke kluster dan jalankan perintah berikut untuk menanyakan pod:
kubectl get po -n kube-system|grep corednsOutput yang diharapkan:
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-85dc775876-sh558 1/1 Running 0 3m35s kube-system coredns-85dc775876-xzcpp 1/1 Running 0 3m35sPod CoreDNS telah dimulai, menunjukkan bahwa Plugin CoreDNS tidak dikelola telah diinstal.
Jalankan perintah berikut di pod di kluster ACS untuk memeriksa apakah fitur resolusi DNS di kluster bekerja seperti yang diharapkan:
nslookup kubernetesOutput yang diharapkan:
Server: 10.0.0.10 Address: 10.0.0.10#53 Name: kubernetes.default.svc.cluster.local Address: 10.0.0.1Output menunjukkan bahwa resolusi nama domain berhasil dan CoreDNS berjalan seperti yang diharapkan.
Konfigurasi CoreDNS Kustom
Anda dapat mengonfigurasi konfigurasi CoreDNS kustom dengan memodifikasi konfigurasi Corefile, yang disimpan di kluster ACS sebagai ConfigMap. Anda dapat langsung memodifikasi konfigurasi Corefile untuk mengubah konfigurasi CoreDNS. Contoh:
Jalankan perintah berikut untuk memodifikasi konfigurasi Corefile CoreDNS:
kubectl -n kube-system edit cm corednsModifikasi konfigurasi Corefile CoreDNS berdasarkan konten berikut:
Corefile: | .:53 { errors health { lameduck 15s } ready kubeapi k8s_event { level info error warning } kubernetes cluster.local in-addr.arpa ip6.arpa { pods verified ttl 30 fallthrough in-addr.arpa ip6.arpa } prometheus :9153 # forward . /etc/resolv.conf { # Ubah nilai default server DNS forward menjadi 192.168.1.10 di file resolv.conf. forward . 192.168.1.10 { prefer_udp } cache 30 log loop reload loadbalance }Setelah modifikasi, CoreDNS secara otomatis meneruskan nama domain non-kluster ke server DNS yang alamat IP-nya adalah
192.168.1.10. Anda dapat mengubah alamat IP server DNS berdasarkan kebutuhan bisnis Anda.
Referensi
Anda dapat memodifikasi konfigurasi Plugin CoreDNS tidak dikelola berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasi CoreDNS tidak dikelola.
Untuk informasi lebih lanjut tentang cara mengonfigurasi kebijakan DNS dan resolusi DNS untuk pod di kluster ACS, lihat Kebijakan resolusi DNS dan kebijakan caching.
Untuk informasi lebih lanjut tentang cara memecahkan masalah terkait CoreDNS, lihat Pemecahan masalah DNS.