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 bernama default. Ini adalah resource tingkat cluster; artinya, itu tidak dengan namespace.

Melihat resource ClusterDNS

Untuk melihat resource ClusterDNS:

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

Ganti CLUSTER_KUBECONFIG dengan jalur kubeconfig cluster .

Konfigurasi DNS ada di bagian spec. Jika bagian spec kosong atau tidak ada, cluster akan menggunakan konfigurasi CoreDNS Kubernetes 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 :

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

Spesifikasi ClusterDNS

spec.upstreamNameservers

Sebuah larik objek, yang masing-masing memiliki alamat IP server dan porta server. Nilai default untuk port server adalah 53.

Server nama upstream default. Permintaan untuk domain non-cluster diteruskan ke kumpulan server ini secara {i>default<i}. Contoh:

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

Jika Anda tidak menentukan nilai apa pun untuk upstreamNameservers, DNS 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 mengkonfigurasi server nama upstream berbeda untuk domain tertentu, terpisah dari server nama upstream {i>default<i}.

Anda juga dapat mengaktifkan logging kueri untuk domain. Anda dapat melakukan ini untuk domain 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 me-resolve alamat IP akses pribadi, tetapkan parameter ini ke "private". Jika Anda ingin domain Google me-resolve ke alamat IP akses terbatas, tetapkan ke restricted. Jika Anda tidak menginginkan untuk domain Google, tetapkan ke default atau hapus. Untuk selengkapnya informasi, lihat Mengonfigurasi Akses Google Pribadi untuk host lokal.

Contoh:

spec:
  googleAccess: private

spec.orderPolicy

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

Contoh:

spec:
  orderPolicy: sequential