本文說明從全域 DNS 遷移至區域性 DNS 的優點,以及建議採用的方法。
區域性 DNS 可降低跨區域服務中斷的風險,並提升 Compute Engine 專案的整體可靠性。
使用區域 DNS 名稱的好處
Cloud de Confiance by S3NS 提供兩種內部 DNS 名稱:區域性和全域。
- 區域 DNS
區域 DNS 名稱包括 Compute Engine 執行個體的名稱、所在的區域以及所屬的專案。這些名稱會在特定區域內解析。因此,
my-vm.zone1.google.com是zone1的專屬 ID,代表的例項與my-vm.zone2.google.com不同。這種隔離方式有以下主要優點:- 提高可用性:如果某個可用區發生中斷情形,其他可用區的 DNS 解析作業不會受到影響,因此應用程式的可用性會更高。
對於 2018 年 9 月 6 日後建立的機構,區域性 DNS 是預設的內部 DNS 解析方法。
- 全域 DNS
全域 DNS 名稱不包括執行個體所在的區域。也就是說,專案中所有區域的每個執行個體都必須有不重複的 DNS 名稱。這種做法有重大缺點:
- 單點故障:如果全域 DNS 服務發生問題,無論執行個體位於哪個區域,都會受到影響。這可能會導致下列問題:
- 無法建立新執行個體:如果任何區域發生控制平面故障,您可能無法在該區域建立新執行個體。
- 服務中斷:代管執行個體群組 (MIG) 的自動調度資源或自動修復等重要 Compute Engine 服務可能無法正常運作。
- 單點故障:如果全域 DNS 服務發生問題,無論執行個體位於哪個區域,都會受到影響。這可能會導致下列問題:
從全域 DNS 遷移至區域性 DNS 的建議做法
一般來說,從全域 DNS 遷移至區域性 DNS 的程序有兩個步驟:
- 將新專案設為預設使用區域性 DNS。
- 變更內部 DNS 中繼資料設定,將現有專案從使用全域 DNS 遷移至區域 DNS。
部分專案可能不支援區域性 DNS。這些專案需要經過分析和疑難排解,才能遷移至區域性 DNS。
專案相容性指南
Compute Engine 會檢查過去 30 天的內部 DNS 記錄,判斷您是否可以遷移至區域性 DNS,且無須進行任何程式碼變更。即使系統建議遷移專案,Google 仍建議您確認特定工作負載設定已準備好切換至區域性 DNS。為確保遷移作業完成後一切運作順暢,請檢查下列環境因素:
1. DNS 搜尋網域 (僅限 Linux 或 Unix)
改用區域性 DNS 時,Compute Engine 會在執行個體的搜尋路徑中新增網域。
- 驗證時機:如果您執行使用
glibc2.25 版或更早版本的舊版 Linux 或 Unix 發行版本,系統最多只能有六個搜尋網域。 何時可略過:如果執行個體執行下列任一作業系統,則不需要驗證任何項目:
- Windows
- Container-Optimized OS
- Debian 10 以上版本
- Fedora CoreOS 27 以上版本
- RHEL 8 以上版本
- Ubuntu 18.04 以上版本
- 使用
glibc2.26 以上版本的自訂映像檔
如何驗證環境:
連線至 Linux 執行個體,然後執行下列指令,檢查
glibc版本:ldd --version如果您使用
glibc2.25 版或更舊版本,請執行下列指令,查看目前的搜尋網域:cat /etc/resolv.conf輸出內容中的
search行會顯示目前的搜尋網域。您最多只能有五個網域,才能安全地新增搜尋網域,並避免超過 OS 的六個網域限制。
如何解決:
如果執行個體在受影響的 OS 版本上超出搜尋網域限制,您可以透過下列任一方法解決限制問題:
- 建立新執行個體:使用符合規範的 OS 映像檔 (例如 Debian 10 以上版本或 RHEL 8 以上版本) 建立替代執行個體。
- 更新現有執行個體:更新運算執行個體上的客體 OS,使其執行符合規定的作業系統。
2. 執行個體名稱長度 (舊版作業系統)
區域 DNS 會在內部完整網域名稱 (FQDN) 後方附加區域限定符,使整體名稱變長。
- 驗證時機:由於舊版 NetBIOS 慣例,Windows Server 2003 或更早版本等舊版系統的名稱長度上限為 15 個字元。
- 解決方法:如果您使用這些舊版系統,請確認較長的可用區 DNS 名稱未超過字元限制。
新版 Windows OS 映像檔不受影響。
如何解決:
如果舊版 OS 上的執行個體名稱在附加區域限定符後超過 15 個字元,請使用下列任一方法解決問題:
- 重新命名執行個體:停止執行個體並重新命名,確保合併的 FQDN 不超過 NetBIOS 15 個字元的限制。
- 升級作業系統:將運算執行個體的客體 OS 更新為新式 Windows 作業系統映像檔,不再受 NetBIOS 命名限制。
3. 共用虛擬私有雲網路
如果基礎架構使用透過共用虛擬私有雲連線的服務專案,切換為使用可用區 DNS 後,名稱解析的行為會稍微不同。
- 解決方法:為確保 Shared VPC 內的通訊順暢無礙,請確認應用程式使用區域 FQDN 解析這些服務專案中的執行個體名稱。區域 FQDN 包含特定區域名稱。
後續步驟
- 如要瞭解機構、資料夾和專案之間的關係,請參閱Cloud de Confiance by S3NS 資源階層。
- 進一步瞭解 Compute Engine 的內部 DNS。
- 實作機構政策,確保機構內的所有新專案都會自動使用區域性 DNS。
- 將目前的專案遷移至區域性 DNS。