本文档介绍了将工作负载和组织从全球 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 服务出现问题,则可能会影响您的所有实例,无论它们位于哪个可用区。这可能会导致以下问题:
- 无法创建新实例:您可能无法在发生控制平面故障的任何区域中创建新实例。
- 服务中断:关键 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 发行版的虚拟机。
- 不受影响的实例:以下操作系统不受影响的实例:
- Windows
- Container-Optimized OS
- Debian 10 或更高版本
- Fedora CoreOS(27 版或更高版本)
- RHEL 8 或更高版本
- Ubuntu 18.04 或更高版本
- 使用
glibc
2.26 版或更高版本的自定义映像
如需检查实例使用的 glibc 版本,请执行以下操作:
- 连接到您的 Linux 虚拟机。
- 运行
ldd --version
命令。
如果您的实例使用的是 glibc
2.25 或更低版本,请检查搜索网域:
- 连接到您的 Linux 虚拟机。
- 运行
cat /etc/resolv.conf
命令。
操作系统版本
某些操作系统(例如 Windows Server 2003 及更低版本)将计算实例名称限制为 15 个字符。可用区级 DNS 会在内部 DNS 完全限定域名 (FQDN) 中添加可用区限定符。
Windows 上的命名限制是由于早期版本的操作系统中使用的 NetBIOS 命名惯例而导致的。较新的 Windows 版本已不再受此限制,允许使用较长的实例名称。
如果您使用的是旧版 Windows 系统,请在迁移到可用区级 DNS 时注意命名限制,因为较长的可用区级 DNS 名称可能会超过此名称长度限制。
共享 VPC 网络
如需解析使用共享 VPC 的服务项目中的实例的 DNS 名称,您必须使用可用区级完全限定域名 (FQDN),其中包含可用区。
后续步骤
- 查看Google Cloud 资源层次结构,了解组织、文件夹和项目之间的关系。
- 详细了解 Compute Engine 的内部 DNS 名称。