Dalam skenario tertentu, Anda perlu mengelola dan memelihara CoreDNS secara manual karena persyaratan bisnis yang sangat khusus. Kluster Alibaba Cloud Container Compute Service (ACS) mendukung CoreDNS tidak dikelola, sehingga memungkinkan Anda mengonfigurasi pengaturan CoreDNS kustom. Topik ini menjelaskan cara menggunakan Plugin CoreDNS tidak dikelola di kluster ACS.
Prasyarat
Kluster ACS telah dibuat. Untuk informasi selengkapnya, lihat Create an ACS cluster. Jika Plugin CoreDNS telah diinstal di kluster ACS, uninstal Plugin CoreDNS yang dikelola dengan mengikuti prosedur instalasi yang dijelaskan dalam topik ini.
-
Saat membuat kluster baru, buka Component Configurations > Service Discovery dan pilih Disable.
Plugin CoreDNS tidak dikelola merupakan plugin standar open-source. Anda bertanggung jawab atas biaya sumber daya serta operasi & pemeliharaan (O&M) plugin tersebut, termasuk penanganan masalah yang mungkin timbul saat menggunakannya.
Secara default, templat plugin yang disediakan oleh ACS menggunakan mekanisme anti-affinity untuk mendistribusikan pod di berbagai zona. Jika Anda mengonfigurasi zona tunggal untuk ACS, hanya satu replika CoreDNS yang dapat berjalan sebagaimana diharapkan. Kami menyarankan Anda mengonfigurasi beberapa zona untuk memastikan disaster recovery dan ketersediaan tinggi.
Prosedur instalasi
-
Masuk ke ACS console. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.
-
(Opsional) Di tab Networking, cari CoreDNS (dengan label
Managed) dan klik Uninstall. Jika Anda tidak melihat CoreDNS (Managed) dalam daftar komponen, lewati langkah ini.PeringatanJika Anda menguninstal CoreDNS (Managed), fitur resolusi Domain Name System (DNS) kluster tidak tersedia. Pastikan tidak ada traffic bisnis di kluster sebelum menguninstal CoreDNS (Managed).
-
Di tab Networking, cari CoreDNS (tanpa label
Managed) dan klik Install. -
Konfigurasikan parameter sesuai kebutuhan Anda. Setelah mengonfirmasi pengaturan, klik OK untuk menginstal komponen.
PentingJika Anda tidak mengatur parameter CpuRequest saat instalasi, pod terkait di kluster ACS hanya akan memiliki 250m sumber daya CPU yang tersedia. Kami menyarankan Anda mengatur nilai CpuRequest yang sesuai untuk menghindari exception kluster akibat beban berlebih pada pod.
Formulir konfigurasi mencakup parameter berikut: MemoryRequest (default:
100Mi), CpuRequest (default:100m), MemoryLimit (default:2Gi), dan CpuLimit (default: kosong). Untuk NodeSelector, kunci default adalahkubernetes.io/osdan nilainya adalahlinux. Tolerations secara default kosong dan dapat dikonfigurasi sesuai kebutuhan. Gunakan kubectl untuk terhubung ke kluster dan jalankan perintah berikut untuk mengkueri 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, yang menunjukkan bahwa Plugin CoreDNS tidak dikelola berhasil diinstal.
-
Jalankan perintah berikut di dalam pod di kluster ACS untuk memeriksa apakah fitur resolusi DNS di kluster berfungsi sebagaimana 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 tersebut menunjukkan bahwa resolusi nama domain berhasil dan CoreDNS berjalan sebagaimana diharapkan.
Konfigurasi CoreDNS kustom
Anda dapat mengonfigurasi pengaturan CoreDNS kustom dengan memodifikasi konfigurasi Corefile, yang disimpan di kluster ACS sebagai ConfigMap. Anda dapat langsung mengubah konfigurasi Corefile untuk memodifikasi pengaturan CoreDNS. Contoh:
Jalankan perintah berikut untuk memodifikasi konfigurasi Corefile CoreDNS:
kubectl -n kube-system edit cm coredns-
Modifikasi 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 server DNS forward dari default di resolv.conf menjadi 192.168.1.10. 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 dengan alamat IP
192.168.1.10. Anda dapat mengubah alamat IP server DNS sesuai kebutuhan bisnis Anda.
Referensi
Anda dapat memodifikasi konfigurasi Plugin CoreDNS tidak dikelola sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Configure unmanaged CoreDNS.
Untuk informasi lebih lanjut tentang cara mengonfigurasi kebijakan DNS dan resolusi DNS untuk pod di kluster ACS, lihat DNS resolution policies and caching policies.
Untuk informasi lebih lanjut tentang cara melakukan troubleshooting masalah terkait CoreDNS, lihat DNS troubleshooting.