建立 DNS 區域

本頁面將逐步說明如何在 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 可用區:

  1. 建立及套用 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。這是選填欄位。
  2. 如果是公開 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。這是選填欄位。

後續步驟