本文件說明將工作負載和機構從全球 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 服務發生問題,無論執行個體位於哪個區域,都可能會受到影響。這可能會導致下列問題:
- 無法建立新執行個體:您可能無法在發生控制平面失敗的任何區域中建立新執行個體。
- 服務中斷:關鍵的 Compute Engine 服務 (例如代管執行個體群組 (MIG) 的自動調度資源或自動修復功能) 可能無法正常運作。
- 單一故障點:如果全域 DNS 服務發生問題,無論執行個體位於哪個區域,都可能會受到影響。這可能會導致下列問題:
在 2018 年 9 月 6 日前加入 Google Cloud 的機構,預設會為所有新專案使用全域 DNS。Google 強烈建議您將這些專案遷移至區域 DNS,以提升可靠性並避免發生上述服務中斷情形。此外,您應更新機構政策,強制機構內所有新專案使用區域 DNS。
建議從全球 DNS 遷移至區域 DNS
一般來說,從全球 DNS 遷移至可用區 DNS 的程序有兩個步驟:
- 將新專案設為預設使用可用區 DNS。
- 變更內部 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 版本,請執行下列操作:
- 連線至 Linux VM。
- 請執行
ldd --version
指令。
如果您的執行個體使用 glibc
2.25 版或更舊版本,請檢查搜尋網域:
- 連線至 Linux VM。
- 執行
cat /etc/resolv.conf
指令。
OS 版本
部分作業系統 (例如 Windows Server 2003 以下版本) 的運算單元名稱長度上限為 15 個字元。區域 DNS 會在內部 DNS 完整網域名稱 (FQDN) 中加入區域限定詞。
Windows 的命名限制是因為早期版本的作業系統使用 NetBIOS 命名慣例。較新的 Windows 版本已移除這項限制,並允許使用較長的執行個體名稱。
如果您使用的是舊版 Windows 系統,請在遷移至區域 DNS 時留意命名限制,因為較長的區域 DNS 名稱可能會超過這個名稱長度限制。
共用虛擬私有雲網路
如要在使用共用 VPC 的服務專案中解析執行個體的 DNS 名稱,您必須使用包含區域的區域完整網域名稱 (FQDN)。
後續步驟
- 如要瞭解機構、資料夾和專案之間的關係,請參閱 Google Cloud 資源階層。
- 進一步瞭解 Compute Engine 內部 DNS。