Mengonfigurasi DNS untuk cluster

Dokumen ini menunjukkan cara mengonfigurasi opsi penyedia Domain Name System (DNS) untuk Google Distributed Cloud. Konfigurasi DNS untuk cluster disimpan dalam resource kustom ClusterDNS bernama default. Resource ini berlaku untuk seluruh cluster, yang berarti tidak memiliki namespace. Resource kustom ClusterDNS berlaku untuk semua jenis cluster.

Membuat resource ClusterDNS

Buat manifes untuk resource ClusterDNS bernama default. Isi spec untuk mengonfigurasi setelan resource yang Anda inginkan. Contoh:

apiVersion: networking.gke.io/v1alpha1
kind: ClusterDNS
metadata:
  name: default
spec:
  upstreamNameservers:
  - serverIP: 8.8.8.8
  - serverIP: 8.8.4.4
  domains:
  - name: altostrat.com
    nameservers:
    - serverIP: 198.51.100.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 54
  googleAccess: default

Untuk menyimpan manifes ke file bernama my-dns.yaml dan menerapkan resource ke cluster, jalankan perintah berikut:

kubectl --kubeconfig KUBECONFIG apply -f my-dns.yaml

Ganti KUBECONFIG dengan jalur ke file kubeconfig cluster.

Melihat resource ClusterDNS

Untuk melihat resource ClusterDNS, jalankan perintah berikut:

kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml

Ganti KUBECONFIG dengan jalur ke file kubeconfig cluster.

Spesifikasi ClusterDNS

Bagian berikut menjelaskan bagian dari definisi resource kustom ClusterDNS yang Anda gunakan untuk mengonfigurasi DNS untuk cluster. Anda dapat memperbarui resource ClusterDNS untuk cluster kapan saja.

spec.upstreamNameservers

Gunakan kolom spec.upstreamNameservers untuk menentukan server nama upstream default Anda dengan array objek. Setiap objek memiliki alamat IP server dan secara opsional port server. Nilai default untuk port server adalah 53. Permintaan untuk domain non-cluster diteruskan ke kumpulan server ini secara default.

Berikut adalah contoh konfigurasi upstreamNameservers:

spec:
  upstreamNameservers:
  - serverIP: 8.8.8.8
  - serverIP: 1.2.3.4
    serverPort: 54

Jika Anda tidak menentukan nilai apa pun untuk upstreamNameservers, penyedia DNS akan menggunakan file /etc/resolv.conf di node untuk menemukan daftar server nama upstream.

spec.domains

Gunakan kolom spec.domains untuk mengonfigurasi server nama upstream yang berbeda untuk domain tertentu. Setelan server nama khusus domain ini menggantikan konfigurasi di upstreamNameservers.

Anda juga dapat mengaktifkan logging kueri untuk domain. Anda dapat mengaktifkan logging kueri untuk domain tertentu atau domain cluster, cluster.local.

Berikut adalah contoh konfigurasi spec.domains:

spec:
  domains:
  - name: altostrat.com
    nameservers:
    - serverIP: 198.51.100.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 50000
  - name: cluster.local
    queryLogging: true

spec.googleAccess

Kolom spec.googleAccess adalah string yang mengonfigurasi resolusi DNS untuk domain yang digunakan oleh Google API dan layanan global. Kolom ini menerima nilai berikut:

  • default: Secara default, resolusi DNS memetakan domain Google API global ke alamat IP default. Cluster tidak menyesuaikan resolusi DNS untuk domain Google API global. Untuk mengetahui informasi selengkapnya, lihat Alamat IP untuk domain default. Jika Anda tidak menentukan nilai di kolom googleAccess, sistem akan menggunakan default.

  • private: memetakan resolusi DNS untuk domain Google API global ke alamat IP yang digunakan oleh private.googleapis.com.

  • restricted: memetakan resolusi DNS untuk domain Google API global ke alamat IP yang digunakan oleh restricted.googleapis.com.

Contoh berikut menunjukkan cara menetapkan resolusi DNS untuk menggunakan private.googleapis.com:

spec:
  googleAccess: private

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Akses Google Pribadi untuk host lokal.

spec.orderPolicy

Kolom spec.orderPolicy adalah string. Gunakan kolom ini untuk menentukan kebijakan pengurutan yang digunakan untuk memilih server upstream.

  • Nilai defaultnya adalah random.
  • Jenis yang didukung adalah random,round_robin, dan sequential.
  • Kebijakan pengurutan ini juga berlaku untuk domain yang ditentukan.

Untuk mengetahui informasi selengkapnya tentang policy dan fungsi setiap konfigurasi, lihat dokumentasi coredns.

Berikut adalah contoh konfigurasi spec.orderPolicy:

spec:
  orderPolicy: sequential