使用可用區 DNS 的總覽


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

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

使用區域 DNS 名稱的好處

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

區域 DNS

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

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

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

全球 DNS

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

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

在 2018 年 9 月 6 日前加入的機構,預設會為所有新專案設定使用全域 DNS。 Google Cloud Google 強烈建議將這些專案遷移至區域 DNS,以提升可靠性並避免上述服務中斷情形。此外,您應更新機構政策,強制規定機構內所有新建立的專案都必須使用可用區 DNS

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

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

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

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

遷移限制

Compute Engine 提供的準備程度評估,是根據過去 30 天的內部 DNS 查詢記錄。不過,其他因素可能會影響您順利遷移至區域 DNS 的能力:

glibc 版本

遷移至可用區 DNS 會在搜尋路徑中新增網域。執行 Linux 或 Unix 作業系統,且使用 glibc 2.25 版或更早版本的運算執行個體,最多只能有 6 個搜尋網域。超過這項限制可能會導致問題。

  • 受影響的執行個體:這項限制適用於使用舊版 Linux 或 Unix 發行版本的 VM。
  • 不受影響的執行個體:下列作業系統的執行個體不受影響:
    • Windows
    • Container-Optimized OS
    • Debian 10 以上版本
    • Fedora CoreOS (27 以上版本)
    • RHEL 8 以上版本
    • Ubuntu 18.04 以上版本
    • 使用 glibc 2.26 以上版本的自訂圖片

如要檢查執行個體使用的 glibc 版本,請執行下列操作:

  1. 連線至 Linux VM。
  2. 請執行 ldd --version 指令。

如果您的執行個體使用 glibc 2.25 版或更舊版本,請檢查搜尋網域:

  1. 連線至 Linux VM。
  2. 執行 cat /etc/resolv.conf 指令。

作業系統版本

部分作業系統 (例如 Windows Server 2003 和更早版本) 的運算執行個體名稱長度上限為 15 個字元。區域 DNS 會在內部 DNS 完整網域名稱 (FQDN) 中加入區域限定符。

Windows 的命名限制是作業系統舊版使用的 NetBIOS 命名慣例所致。新版 Windows 已取消這項限制,允許較長的執行個體名稱。

如果您使用舊版 Windows 系統,遷移至區域 DNS 時請注意命名限制,因為較長的區域 DNS 名稱可能會超過名稱長度限制。

共用虛擬私有雲網路

如要解析使用共用 VPC 的服務專案中執行個體的 DNS 名稱,您必須使用區域完整網域名稱 (FQDN),其中包含區域。

後續步驟