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 seluruh cluster; yaitu, tidak memiliki 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 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 cluster:

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

Spesifikasi ClusterDNS

spec.upstreamNameservers

Array objek, yang masing-masing memiliki alamat IP server dan secara opsional port server. 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 di 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 melakukannya 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 di-resolve ke alamat IP akses pribadi, tetapkan ke "private". Jika Anda ingin domain Google me-resolve ke alamat IP dengan akses terbatas, tetapkan ke restricted. Jika Anda tidak ingin perlakuan khusus untuk domain Google, tetapkan ke default atau hapus. Untuk 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". Perhatikan bahwa kebijakan pengurutan ini juga akan berlaku untuk domain yang ditentukan. Lihat dokumen coredns untuk mengetahui informasi selengkapnya tentang policy dan fungsi setiap konfigurasi.

Contoh:

spec:
  orderPolicy: sequential