Mengonfigurasi DNS untuk cluster

Dokumen ini menunjukkan cara mengonfigurasi DNS untuk cluster admin atau cluster pengguna.

Konfigurasi DNS untuk cluster disimpan di resource kustom ClusterDNS yang bernama default. Ini adalah resource tingkat cluster; artinya, resource ini tidak dengan namespace.

Melihat resource ClusterDNS

Untuk melihat resource ClusterDNS:

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

Ganti CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster.

Konfigurasi DNS berada di bagian spec. Jika bagian spec kosong atau tidak ada, cluster akan menggunakan konfigurasi Kubernetes CoreDNS default.

Mengubah konfigurasi DNS

Buat manifes untuk resource ClusterDNS bernama default. Isi spec sesuai keinginan. 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.0.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 54
  googleAccess: private

Simpan manifes ke file bernama my-dns.yaml dan terapkan resource ke cluster tersebut:

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

Spesifikasi ClusterDNS

spec.upstreamNameservers

Array objek, yang masing-masing memiliki alamat IP server dan port server (opsional). Nilai default untuk port server adalah 53.

Server nama upstream default. Permintaan untuk domain non-cluster diteruskan ke kumpulan server ini secara default. Contoh:

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/resolve.conf pada node untuk menemukan daftar server nama upstream.

spec.domains

Konfigurasi untuk domain tertentu. Hal ini memungkinkan penggantian konfigurasi di upstreamNameservers.

Anda dapat menggunakan bagian ini untuk mengonfigurasi server nama upstream yang berbeda untuk domain tertentu, secara terpisah dari server nama upstream default.

Anda juga dapat mengaktifkan logging kueri untuk domain. Anda dapat melakukan ini untuk domain apa pun yang ditentukan atau domain cluster, cluster.local.

Contoh:

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

spec.googleAccess

String. Jika Anda ingin domain Google di-resolve ke alamat IP akses pribadi, tetapkan ke "private". Jika Anda ingin domain Google di-resolve ke alamat IP dengan akses terbatas, tetapkan ke restricted. Jika Anda tidak menginginkan perlakuan khusus untuk domain Google, tetapkan ini ke default atau hapus. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Akses Google Pribadi untuk host lokal.

Contoh:

spec:
  googleAccess: private

spec.orderPolicy

String. Jika Anda ingin menentukan kebijakan pengurutan yang digunakan untuk memilih server upstream. Default-nya adalah "random". Jenis yang didukung adalah "random","round_robin", dan "sequential". Perlu diperhatikan bahwa kebijakan pengurutan ini juga akan berlaku untuk domain yang ditentukan. Lihat dokumen coredns untuk mengetahui info selengkapnya tentang policy dan fungsi setiap konfigurasi.

Contoh:

spec:
  orderPolicy: sequential