Saat node dalam kelompok node cloud hibrida menyelesaikan nama domain menggunakan layanan CoreDNS di dalam kluster, kueri yang sering dapat meningkatkan beban pada jalur sewa Anda. Jalur sewa yang tidak stabil juga dapat menyebabkan kegagalan resolusi DNS. Konfigurasikan NodeLocal DNSCache untuk mengurangi masalah ini.
Cara kerjanya
NodeLocal DNSCache menjalankan agen caching DNS sebagai DaemonSet di setiap node. Permintaan DNS dari Pod pada node pertama kali ditangani oleh cache lokal. Hanya jika terjadi cache miss, permintaan tersebut diteruskan melalui jalur sewa ke layanan CoreDNS upstream yang berjalan di cloud. Arsitektur ini menawarkan dua keuntungan utama:
Traffic berkurang: Sebagian besar kueri DNS diselesaikan secara lokal, mengurangi beban lalu lintas pada jalur sewa.
Peningkatan ketahanan: Jika koneksi jalur sewa mengalami pemadaman, resolusi DNS untuk nama domain yang sudah di-cache tidak terpengaruh.
Pertama kali sebuah domain diselesaikan, NodeLocal DNSCache harus meminta server CoreDNS upstream. Jika jalur sewa tidak stabil selama kueri awal ini, resolusi DNS akan gagal.
Selama pemadaman koneksi jalur sewa, data yang di-cache tidak dapat diperbarui secara real-time.
Prasyarat
Anda memiliki ACK managed Pro cluster yang menjalankan Kubernetes 1.33 atau lebih baru.
VPC tempat kluster berada telah menetapkan koneksi jaringan lintas-cloud.
Anda memiliki node Elastic Compute Service (ECS) di dalam kluster untuk menerapkan add-on manajemen ACK untuk kelompok node cloud hibrida. Untuk memastikan Ketersediaan tinggi (HA), gunakan setidaknya tiga node ECS.
Plugin jaringan Terway Hybrid telah diinstal di kluster.
Prosedur
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sisi kiri, pilih .
Di tab Networking, temukan kartu ACK NodeLocal DNSCache dan klik Install. Di kotak dialog yang muncul, klik OK.
Setelah instalasi selesai, pilih di panel navigasi kiri, dan pilih namespace kube-system dari daftar drop-down.
Temukan dan edit ConfigMap
node-local-dns. Tambahkan opsiprefetchdanserve_staleke bagiancacheuntuk mengaktifkan pra-pengambilan cache dan penyajian entri basi.Jika Anda memperbarui add-on NodeLocal DNSCache di masa mendatang, konfigurasi ini akan ditimpa dan harus diterapkan ulang.
apiVersion: v1 data: Corefile: | .:53 { errors cache { ... prefetch 1 30s 10% # Pra-ambil serve_stale 1h immediate # Sajikan data basi } ... } kind: ConfigMap metadata: ...prefetch 1 30 s 10%: Konfigurasi ini mengaktifkan pra-pengambilan cache. Jika entri yang di-cache diminta lebih dari sekali dalam 30 detik, cache akan secara otomatis mulai menyegarkannya di latar belakang saat memasuki 10% terakhir dari Waktu Hidupnya (TTL).serve_stale 1 h immediate: Ini mengonfigurasi perilaku untuk menyajikan entri cache basi (kedaluwarsa). Hingga 1 jam setelah cache kedaluwarsa, entri cache yang kedaluwarsa masih dapat digunakan untuk resolusi nama domain. Kebijakan refresh untuk cache yang kedaluwarsa adalahimmediate. Ini berarti bahwa ketika permintaan mengenai entri cache yang kedaluwarsa, entri kedaluwarsa tersebut segera dikembalikan ke klien sementara permintaan untuk catatan yang diperbarui dikirim ke server DNS upstream.