All Products
Search
Document Center

Container Service for Kubernetes:Diagnosis kesalahan resolusi DNS dengan ACK CoreDNS DNSTAP Analyser

Last Updated:Jun 18, 2026

Tangkap pesan DNS pada setiap tahap resolusi untuk mengisolasi lokasi kegagalan dalam kluster ACK Pro.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Latar Belakang

DNSTAP adalah format log untuk pesan DNS. CoreDNS menyertakan plugin DNSTAP bawaan yang menangkap setiap pesan DNS. ACK CoreDNS DNSTAP Analyser menerima pesan-pesan tersebut melalui TCP dan menggabungkannya menjadi catatan diagnostik per sesi.

Lihat DNSTAP untuk detail format log.

Langkah 1: Instal ACK CoreDNS DNSTAP Analyser

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi sebelah kiri, pilih Applications > Helm.

  3. Pada halaman Helm, klik Deploy. Pada langkah Basic Information, konfigurasikan parameter berikut. Pilih ack-coredns-dnstap-analyser dan klik Next.

    Parameter Nilai
    Application Name ack-coredns-dnstap-analyser
    Namespace kube-system
    Source Marketplace (default)
    Chart — Use Scenarios All
    Chart — Supported Architecture amd64
    Chart — Search box ack-coredns-dnstap-analyser
  4. Pada langkah Parameters, konfigurasikan Chart Version dan klik OK.

Langkah 2: Konfigurasi plugin dnstap di CoreDNS

CoreDNS menyertakan plugin dnstap. Aktifkan plugin tersebut dan arahkan ke ACK CoreDNS DNSTAP Analyser agar pesan DNS diteruskan secara otomatis.

  1. Dapatkan alamat IP kluster dari layanan DNSTAP Analyser. Catat alamat ini untuk langkah berikutnya.

    kubectl -n kube-system get svc dnstap-analyser

    Dalam contoh ini, alamat IP kluster adalah 172.21.0.10.

  2. Buka ConfigMap CoreDNS untuk diedit.

    kubectl -n kube-system edit cm coredns -o yaml
  3. Tambahkan direktif dnstap ke Corefile. Ganti 172.21.0.10 dengan alamat IP kluster dari Langkah 1.

    Corefile: |
        .:53 {
            # ... other plugins ...
            ready
    
            # Tambahkan baris ini. Bendera "full" menyertakan pesan DNS lengkap
            # dalam format wire pada setiap catatan, yang memberikan data diagnostik lebih kaya.
            dnstap tcp://172.21.0.10:6000 full
    
            kubernetes cluster.local in-addr.arpa ip6.arpa {
            # ... other settings ...
            }
            # ... other plugins ...
            reload
            loadbalance
        }
  4. Verifikasi bahwa CoreDNS telah memuat ulang konfigurasi.

    1. Daftar semua Pod CoreDNS.

      kubectl -n kube-system get pod | grep coredns

      Output yang diharapkan:

      coredns-7d56l         1/1     Running   0          30m
      coredns-s7m2t         1/1     Running   0          30m
    2. Tampilkan log dari sebuah Pod CoreDNS. Ganti coredns-7d56l dengan nama Pod dari output sebelumnya.

      kubectl -n kube-system logs -f --tail=500 coredns-7d56l

      Tunggu hingga satu menit. Muat ulang yang berhasil menghasilkan:

      [INFO] Reloading complete

Langkah 3: Lihat log ACK CoreDNS DNSTAP Analyser

  1. Daftar semua Pod ACK CoreDNS DNSTAP Analyser.

    kubectl -n kube-system get pod | grep dnstap-analyser

    Output yang diharapkan:

    dnstap-analyser-bbdf879-g****         1/1     Running   0          30m
  2. Streaming log. Ganti dnstap-analyser-bbdf879-g**** dengan nama Pod dari output sebelumnya.

    kubectl -n kube-system logs -f dnstap-analyser-bbdf879-g****

Langkah 4: Analisis log

Setiap baris log merepresentasikan satu DNS session — siklus lengkap permintaan-respons antara client, CoreDNS, dan server DNS upstream.

Cara membaca entri sesi: Periksa Status untuk memastikan keberhasilan atau kegagalan. Periksa BitMap untuk mengidentifikasi tahap resolusi yang gagal. Periksa Messages untuk muatan DNS mentah.

Bidang Status

Status Deskripsi
Succeeded Kueri DNS selesai. Respons membawa kode status NXDOMAIN atau NOERROR.
Failed Resolusi gagal. Respons membawa kode status error, atau koneksi upstream mengalami timeout.
SampleLoss CoreDNS atau analyser menjatuhkan pesan dnstap karena kelebihan beban. Tingkatkan skala komponen yang kelebihan beban untuk meningkatkan akurasi diagnostik.
SampleLoss berarti beberapa sesi DNS tidak tertangkap. Jika entri SampleLoss sering muncul, tingkatkan jumlah Pod CoreDNS atau analyser sebelum melanjutkan.

Bidang BitMap

Bitmask yang mengkodekan jenis pesan yang tertangkap dalam sesi. Gunakan untuk mengidentifikasi lokasi kegagalan dalam rantai resolusi.

BitMap Deskripsi
1 CoreDNS menerima kueri client tetapi tidak mengembalikan respons.
3 Domain internal terselesaikan. Kueri mengenai cache CoreDNS atau rekaman DNS Kubernetes, dan hasilnya dikembalikan ke client.
5 Server DNS upstream tidak dapat dijangkau. CoreDNS meneruskan kueri tetapi tidak menerima respons.
15 Domain eksternal terselesaikan. CoreDNS meneruskan kueri ke server upstream, menerima respons, dan mengembalikannya ke client.

Bidang Messages

Bidang Messages berisi kueri dan respons DNS dalam format JSON. Uraikan berdasarkan referensi parameter DNS IANA untuk memeriksa kode respons dan tipe catatan.

(Opsional) Langkah 5: Hapus instalasi ACK CoreDNS DNSTAP Analyser

Setelah investigasi selesai, hapus analyser untuk menghindari biaya yang tidak perlu.

  1. Hapus direktif dnstap dari ConfigMap CoreDNS.

    1. Buka ConfigMap untuk diedit.

      kubectl -n kube-system edit cm coredns -o yaml
    2. Hapus baris yang berisi dnstap.

      Corefile: |
          .:53 {
              # ... other plugins ...
              ready
      
              # Hapus baris berikut.
              dnstap tcp://10.10.10.10:6000 full
      
              kubernetes cluster.local in-addr.arpa ip6.arpa {
              # ... other settings ...
              }
              # ... other plugins ...
              reload
              loadbalance
          }
    3. Verifikasi bahwa CoreDNS telah memuat ulang konfigurasi. Daftar semua Pod CoreDNS.

      kubectl -n kube-system get pod | grep coredns

      Output yang diharapkan:

      coredns-7d56l         1/1     Running   0          30m
      coredns-s7m2t         1/1     Running   0          30m
    4. Tampilkan log dari sebuah Pod CoreDNS. Ganti coredns-7d56l dengan nama Pod dari output sebelumnya.

      kubectl -n kube-system logs -f --tail=500 coredns-7d56l

      Tunggu hingga satu menit. Muat ulang yang berhasil menghasilkan:

      [INFO] Reloading complete
  2. Hapus rilis Helm ACK CoreDNS DNSTAP Analyser.

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

    2. Pada halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi sebelah kiri, pilih Applications > Helm.

    3. Pada halaman Helm, temukan ack-coredns-dnstap-analyser dan klik Delete di kolom Actions.

Langkah selanjutnya