本文說明如何為 Google Distributed Cloud 設定網域名稱系統 (DNS) 供應商選項。叢集的 DNS 設定會保存在名為 default
的 ClusterDNS 自訂資源中。這項資源適用於整個叢集,也就是說,這項資源沒有命名空間。ClusterDNS 自訂資源適用於所有叢集類型。
建立 ClusterDNS 資源
為名為 default
的 ClusterDNS 資源建立資訊清單。視需要填寫 spec
。例如:
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
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 54
googleAccess: default
將資訊清單儲存到名為 my-dns.yaml
的檔案,然後將資源套用到叢集:
kubectl --kubeconfig KUBECONFIG apply -f my-dns.yaml
將 KUBECONFIG
替換為叢集 kubeconfig 檔案的路徑。
查看 ClusterDNS 資源
如要查看 ClusterDNS 資源,請執行下列指令:
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml
將 KUBECONFIG
替換為叢集 kubeconfig 檔案的路徑。
ClusterDNS 規格
以下各節說明 ClusterDNS 自訂資源定義的各個部分,這些部分可用於設定叢集的 DNS。您隨時可以更新叢集的 ClusterDNS 資源。
spec.upstreamNameservers
使用物件陣列指定預設上游名稱伺服器,每個物件都有伺服器 IP 位址,以及選用的伺服器連接埠。伺服器通訊埠的預設值為 53。預設情況下,系統會將非叢集網域的要求轉送至這個伺服器位址陣列。
以下是 upstreamNameservers
設定範例:
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 1.2.3.4
serverPort: 54
如果沒有為 upstreamNameservers
指定任何值,DNS 供應商會使用節點上的 /etc/resolv.conf
檔案,找出上游名稱伺服器清單。
spec.domains
特定網域的設定。您可以在這個部分為特定網域設定不同的上游名稱伺服器。這些網域專屬名稱伺服器設定會覆寫 upstreamNameservers
中的設定。
您也可以為網域啟用查詢記錄功能。您可以為任何指定網域或叢集網域 (cluster.local) 啟用查詢記錄。
例如:
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
列舉 (private
、restricted
或 default
)。指定 Google 網域的處理方式。googleAccess
值會指定下列行為:
default
:Google 網域沒有特殊待遇。移除googleAccess
欄位也會有相同效果。private
:只將 Google 網域解析為私人存取 IP 位址。restricted
:只將 Google 網域解析為受限存取的 IP 位址。
下列設定範例只會將 Google 網域解析為私人存取 IP 位址:
spec:
googleAccess: private
詳情請參閱設定內部部署主機的私人 Google 存取權。
spec.orderPolicy
字串。如要指定上游伺服器的選取順序政策,預設為 "random"
步。支援的類型包括 "random"
、"round_robin"
和 "sequential"
。請注意,這項排序政策也適用於已定義的網域。如要進一步瞭解 policy
和各項設定的作用,請參閱 coredns 說明文件。
例如:
spec: orderPolicy: sequential