本頁面將逐步說明如何在 Google Distributed Cloud (GDC) 氣隙環境中,為新網域設定 DNS 解析。在 GDC 中使用 DNS 區域。
本頁面適用於負責管理機構 DNS 解析的平台管理員和應用程式運算子。
您可以在 GDC 環境中建立公開或私人的 DNS 區域,以符合服務的瀏覽權限和存取權需求:
- 如要讓外部網路看得到並存取服務:設定公開 DNS 區域,允許網路外部的使用者和系統存取服務。如果您有網站、面向大眾的 API,或任何需要從 GDC Cloud 環境外部連線的服務,您需要公開 DNS 區域,將網域名稱對應至適當的 IP 位址。
- 需要安全且受限制地存取內部系統的服務:設定私人 DNS 區域,隱藏內部網域名稱,並限制對內部服務的存取權。如果您有內部應用程式、資料庫或微服務,需要僅使用安全通訊協定和私人 IP 位址與其他內部服務通訊,則需要私人 DNS 區域,將網域名稱對應至適當的 IP 位址。私人 DNS 區域可確保這些服務能使用內部網域名稱互相尋找,而不會向外部網路公開其存在或 IP 位址。這項功能可提升安全性,並簡化內部網路。
如要進一步瞭解公開和私人 DNS 區域的差異,請參閱「Cloud DNS 的區域類型」。
事前準備
如要在 GDC 中設定 DNS 區域並新增記錄,您必須具備下列項目:
建立公開 DNS 區域
在 GDC 中使用 Kubernetes API 建立公開 DNS 可用區:
建立及套用
ManagedDNSZone
資源,建立可從 GDC 外部存取的 DNS 區域:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PUBLIC EOF
更改下列內容:
GLOBAL_API_SERVER
:全域 API 伺服器的 kubeconfig 路徑。詳情請參閱「全域和區域 API 伺服器」。如果尚未為 API 伺服器產生 kubeconfig 檔案,請參閱「登入」一文瞭解詳情。DNS_ZONE_NAME
:DNS 區域的名稱。PROJECT_NAMESPACE
:專案的命名空間。DOMAIN_NAME
:公開 DNS 區域的網域名稱,例如example.com
。DESCRIPTION
:DNS 區域的說明。例如,Public DNS zone for example.com
。這是選填欄位。
如果是公開 DNS 區域,您必須在網路中設定 DNS 解析器,將該 DNS 區域的 DNS 要求轉送至 GDC 中託管該 DNS 區域的名稱伺服器。名稱伺服器會列在
ManagedDNSZone
自訂資源的狀態中:apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: public-example-com namespace: PROJECT_NAMESPACE spec: dnsName: example.com description: "Public DNS zone for example.com" visibility: PUBLIC status: … nameServers: - ns.managed-dns-public.gdc1.staging.gpcdemolabs.com
在本例中,DNS 解析器需要更新,才能將
example.com
的要求轉送至ns.managed-dns-public.gdc1.staging.gpcdemolabs.com
。這項設定假設解析器已具備適當轉送 GDC 基礎架構 DNS 區域gdc1.staging.gpcdemolabs.com
DNS 要求的必要設定。
建立私有 DNS 區域
使用 Kubernetes API 建立私人 DNS 區域:
建立並套用
ManagedDNSZone
資源,建立只能從預設客戶 VPC 存取的 DNS 區域:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PRIVATE EOF
更改下列內容:
GLOBAL_API_SERVER
:全域 API 伺服器的 kubeconfig 路徑。詳情請參閱「全域和區域 API 伺服器」。如果尚未為 API 伺服器產生 kubeconfig 檔案,請參閱「登入」一文瞭解詳情。DNS_ZONE_NAME
:DNS 區域的名稱。PROJECT_NAMESPACE
:專案的命名空間。DOMAIN_NAME
:私人 DNS 區域的網域名稱,例如example.com
。DESCRIPTION
:DNS 區域的說明。例如,Private DNS zone for example.com
。這是選填欄位。