使用可用區 DNS 的總覽

本文說明從全域 DNS 遷移至區域性 DNS 的優點,以及建議的遷移工作負載和機構做法。

區域性 DNS 可降低跨區域服務中斷的風險,並提升 Compute Engine 專案的整體可靠性。

使用可用區 DNS 名稱的好處

Google Cloud 提供兩種內部 DNS 名稱:區域性和全域。

區域 DNS

可用區 DNS 名稱包含 Compute Engine 執行個體的名稱、執行個體所在的可用區,以及擁有執行個體的專案。這些名稱會在特定區域內解析。因此,my-vm.zone1.google.com 是 zone1 專屬的,代表與 my-vm.zone2.google.com 不同的例項。這種隔離方式有以下主要優點:

  • 提升可用性:如果某個可用區發生服務中斷情形,不會影響其他可用區的 DNS 解析,因此應用程式的可用性會更高。

對於 2018 年 9 月 6 日後建立的機構,區域性 DNS 是預設的內部 DNS 解析方法。

全域 DNS

全域 DNS 名稱不包含執行個體所在的區域。也就是說,在專案的「所有」可用區中,每個執行個體都必須有不重複的 DNS 名稱。這種做法有顯著缺點:

  • 單點故障:如果全域 DNS 服務發生問題,無論執行個體位於哪個可用區,都會受到影響。這可能會導致下列問題:
    • 無法建立新執行個體:如果任何區域發生控制層故障,您可能就無法在該區域建立新執行個體。
    • 服務中斷:代管執行個體群組 (MIG) 的自動調度資源或自動修復等重要 Compute Engine 服務可能無法正常運作。

從全域 DNS 遷移至區域性 DNS 的建議做法

一般來說,從全域 DNS 遷移至區域性 DNS 的程序有兩個步驟:

  1. 將新專案設為預設使用區域性 DNS。
  2. 如要將現有專案從使用全域 DNS 遷移至區域性 DNS,請變更內部 DNS 中繼資料設定。

部分專案可能與區域性 DNS 不相容。這些專案需要經過分析和疑難排解,才能遷移至可用區 DNS。

專案相容性指南

Compute Engine 會檢查過去 30 天的內部 DNS 記錄,判斷您是否可以遷移至區域性 DNS,而不必進行任何程式碼變更。即使系統建議遷移專案,Google 仍建議您確認特定工作負載設定已準備好切換至區域性 DNS。為確保遷移作業完成後一切運作順暢,請檢查下列環境因素:

1. DNS 搜尋網域 (僅限 Linux 或 Unix)

改用區域性 DNS 時,Compute Engine 會在執行個體的搜尋路徑中新增網域。

  • 驗證時機:如果您執行使用 glibc 2.25 以下版本的舊版 Linux 或 Unix 發行版本,系統最多只能有六個搜尋網域。
  • 何時可略過:如果執行個體執行下列任一作業系統,則不需要驗證任何項目:

    • Windows
    • Container-Optimized OS
    • Debian 10 以上版本
    • Fedora CoreOS 27 以上版本
    • RHEL 8 以上版本
    • Ubuntu 18.04 以上版本
    • 使用 glibc 2.26 以上版本的自訂映像檔

如何驗證環境:

  1. 連線至 Linux 執行個體,然後執行下列指令,查看 glibc 版本:

    ldd --version
    
  2. 如果使用 glibc 2.25 版或更早版本,請執行下列指令,查看目前的搜尋網域:

    cat /etc/resolv.conf
    

    輸出內容中的 search 行會顯示目前的搜尋網域。您最多只能有五個網域,才能安全地新增搜尋網域,避免超出作業系統的六個網域限制。

如何緩解:

如果執行個體在受影響的 OS 版本上超過搜尋網域限制,可以透過下列任一方法解決限制:

  • 建立新執行個體:使用符合規範的 OS 映像檔 (例如 Debian 10 以上版本或 RHEL 8 以上版本) 建立替代執行個體。
  • 更新現有執行個體:更新運算執行個體上的客體 OS,以便執行符合規範的作業系統。

2. 執行個體名稱長度 (舊版作業系統)

分區 DNS 會在內部完整網域名稱 (FQDN) 後方附加分區限定符,使整體名稱變長。

  • 驗證時機:舊版系統 (例如 Windows Server 2003 或更早版本) 由於採用舊版 NetBIOS 慣例,名稱長度上限為 15 個字元。
  • 解決方法:如果您使用這些舊版系統,請確認較長的可用區 DNS 名稱未超過字元限制。

現代 Windows OS 映像檔不受影響。

緩解方式:

如果舊版 OS 上的執行個體名稱在附加區域限定符後超過 15 個字元,請使用下列任一方法解決問題:

  • 重新命名執行個體:停止執行個體並重新命名,確保合併的 FQDN 不超過 NetBIOS 15 個字元的限制。
  • 升級作業系統:將運算執行個體的客體 OS 更新為新式 Windows 作業系統映像檔,不再適用 NetBIOS 命名限制。

3. 共用虛擬私有雲網路

如果基礎架構使用透過 Shared VPC 連線的服務專案,則改用可用區 DNS 後,名稱解析的行為會略有不同。

  • 解決方法:為確保 Shared VPC 內通訊無礙,請確認應用程式使用區域 FQDN 解析這些服務專案中的執行個體名稱。可用區 FQDN 包含特定可用區名稱。

後續步驟