本文說明如何為 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
nameservers:
- 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
使用 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
使用 spec.domains 欄位為特定網域設定不同的上游名稱伺服器。這些網域專屬名稱伺服器設定會覆寫 upstreamNameservers 中的設定。
您也可以為網域啟用查詢記錄功能。您可以為任何指定網域或叢集網域 (cluster.local) 啟用查詢記錄。
以下是 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
spec.googleAccess 欄位是字串,可設定全域 Google API 和服務所用網域的 DNS 解析。這個欄位接受下列值:
default:根據預設,DNS 解析會將全域 Google API 網域對應至預設 IP 位址。叢集不會自訂全域 Google API 網域的 DNS 解析。詳情請參閱「預設網域的 IP 位址」。如未在googleAccess欄位中指定值,系統會使用default。private:將全域 Google API 網域的 DNS 解析對應至private.googleapis.com使用的 IP 位址。restricted:將全域 Google API 網域的 DNS 解析對應至restricted.googleapis.com使用的 IP 位址。
以下範例說明如何將 DNS 解析設為使用 private.googleapis.com:
spec:
googleAccess: private
詳情請參閱為地端部署主機設定 Private Google Access。
spec.orderPolicy
spec.orderPolicy 欄位是字串。使用這個欄位指定上游伺服器的選取順序政策。
- 預設值為
random。 - 支援的類型為
random、round_robin和sequential。 - 這項排序政策也適用於已定義的網域。
如要進一步瞭解 policy 和各項設定的作用,請參閱 coredns 說明文件。
以下是 spec.orderPolicy 設定範例:
spec: orderPolicy: sequential