全部产品
Search
文档中心

Container Compute Service:Gunakan CoreDNS tidak dikelola dalam kluster ACS

更新时间:Jun 28, 2025

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.

Penting
  • 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

  1. Masuk ke Konsol ACS. Di panel navigasi di sebelah kiri, klik Clusters.

  2. 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.

  3. Opsional. Klik tab Network, temukan CoreDNS (Dikelola), lalu klik Uninstall. Jika Anda tidak dapat menemukan CoreDNS (Dikelola), lewati langkah ini.

    image

    Peringatan

    Jika 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).

  4. Klik tab Network, temukan CoreDNS, lalu klik Install.

    image

  5. Konfigurasikan parameter berdasarkan kebutuhan bisnis Anda. Setelah mengonfirmasi pengaturan, klik OK.

    Penting

    Jika 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.

    image

  6. Gunakan kubectl untuk terhubung ke kluster dan jalankan perintah berikut untuk menanyakan pod:

    kubectl get po -n kube-system|grep coredns

    Output 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          3m35s

    Pod CoreDNS telah dimulai, menunjukkan bahwa Plugin CoreDNS tidak dikelola telah diinstal.

  7. Jalankan perintah berikut di pod di kluster ACS untuk memeriksa apakah fitur resolusi DNS di kluster bekerja seperti yang diharapkan:

    nslookup kubernetes

    Output yang diharapkan:

    Server:         10.0.0.10
    Address:        10.0.0.10#53
    
    Name:   kubernetes.default.svc.cluster.local
    Address: 10.0.0.1

    Output 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:

  1. Jalankan perintah berikut untuk memodifikasi konfigurasi Corefile CoreDNS:

    kubectl -n kube-system edit cm coredns
  2. 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 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