Google Distributed Cloud (GDC) 网闸隔离配置提供可实现高可用性和灾难恢复的部署功能。此功能在本页中称为多区域。
借助多可用区功能,您可以在 GDC 上运行断开连接的关键任务工作负载,同时获得与公共超大规模云提供商类似的高可用性 (HA) 和灾难恢复 (DR) 功能。 GDC 提供可应对本地故障的托管式服务和基础设施服务。对于某些服务,您必须确定工作负载所需的恢复能力级别。以下列举了一些提供多可用区功能的服务:
如需查看提供多可用区功能的服务的完整列表,请参阅支持多可用区的 GDC 服务。
GDC 多可用区提供全球性资源管理功能,可简化跨 GDC 可用区的资源管理。您可以查看宇宙中管理的所有 GDC 资源和服务,并了解提醒、健康状况、使用情况、日志记录、监控和结算信息。
GDC 中的多可用区 universe 需要全球性资源和硬件对称性。这种对称性意味着,所有可用区中的硬件和组织必须相同,并且无法在特定可用区中单独修改。
多可用区还可为您提供构建块,以帮助您实现灾难恢复和业务连续性目标。多可用区主要提供以下三项功能:
控制平面服务的连续性。如果发生可用区级灾难,恢复组织及其关联服务所需的关键功能将已存在于另一个可用区中。
多可用区资源。例如,跨 GDC 可用区的异步存储复制。
多区代管式服务。 例如,负载平衡器提供由代管式服务控制的多可用区变体。
什么是地区?
每个可用区都可以是独立的灾难域,具体取决于其放置位置。例如,如果两个地区位于俯冲带中,彼此相距不到 1 公里,则它们属于同一灾难网域。每个可用区都是经过网闸隔离的 GDC 的完整实现,是一种不需要随时连接到 Google Cloud 的硬件和软件解决方案。可用区管理使用本地控制平面的基础架构、服务、API 和工具。
经过网闸隔离的 GDC 可用区由四层组成:
硬件:Google 定义的基础硬件和机架设计。
基础设施:管理硬件,并提供抽象层,使软件层无需参考特定于硬件的配置即可运行。
服务平台:一种用于在分布式云上构建服务的框架,可在代管式服务和 Marketplace 服务之间提供一致性。
托管式服务和 Marketplace 服务:在 GDC 上运行的面向客户的云服务。
一组相互连接的隔离区称为宇宙。如需部署具备高可用性的容错应用,以防范意外故障,您必须跨宇宙中的多个可用区部署应用。
什么是区域?
区域是指在我们的定义延迟要求范围内,宇宙中的一组可用区。如果某个可用区没有足够近的对等可用区,则该可用区会被视为自己的区域。一个区域中的可用区必须相隔至少 10 公里,以确保它们在许多合规性要求中是单独的灾难网域。
各区域之间可能相隔数百公里。因此,GDC 仅在区域内提供同步服务;异步服务可在区域内和区域之间使用。
异步服务在后台执行复制,提供低但非零的恢复点目标 (RPO)。通常,异步服务在网络分区期间仍可使用。
GDC 气隙异步服务示例包括:
- 块存储
- 对象存储
单个区域内的可用区必须满足延迟时间要求,才能提供强一致性服务。同步服务会立即执行复制,确保每次写入至少在两个可用区中可用。这是实现零 RPO 所需的核心步骤。 通常,同步服务的延迟时间比非复制服务长,并且在出现网络分区时可能会变得不可用。
GDC 网闸隔离同步服务示例包括:
- NFS 文件共享
- 对象存储
什么是媒体资源?
具有直接网络连接(无论距离或延迟)以及共享管理和控制平面的地区属于一个宇宙。一个媒体覆盖面最多可以有 6 个区域。
每个宇宙可以包含多个可用区,这些可用区组织成相互关联的区域。例如,美国弗吉尼亚州的两个地区和荷兰阿姆斯特丹的地区,每个地区有三个可用区:
GDC 区域 1(弗吉尼亚)
- 可用区 1 (us-virginia1-a)
- 可用区 2 (us-virginia1-b)
- 可用区 3 (us-virginia1-c)
GDC 区域 2(荷兰)
- 可用区 1 (eu-ams1-a)
- 可用区 2 (eu-ams1-b)
- 可用区 3 (eu-ams1-c)
下图展示了一个 GDC 宇宙示例。
一个影音平台可以有 1-6 个地区,并且可以有一个或两个运营中心。
无论区域配置如何,Universe 都提供以下自动恢复策略:
- 对于具有两个可用区的 Universe,必须手动触发恢复。
- 对于包含三个或更多可用区的 Universe,可以自动触发恢复。
如需了解详情,请与您的运营商联系。
可用区级资源
地区资源在单个地区内运作。地区服务中断可能会影响该地区中的部分或全部资源。可用区级资源的一个示例是:位于特定地区内的虚拟机 (VM) 实例。如需详细了解如何在 GDC 世界中管理可用区级资源,请参阅 Management API 服务器。
全球性资源
全球性资源是指部署在整个宇宙中的资源,例如组织。因此,与可用区级资源相比,区域级资源具有较高的可用性。全局资源部署到全局管理 API 服务器并由其管理。
对于每个组织,都有全局和可用区级管理 API 服务器。
灾难网域
灾难域是指可能因资源在物理上彼此邻近而同时受到影响的资源集合。因此,它是一种与持久性相关的结构,用于简化区域分离的要求。通常,单个灾难网域对应于单个校园。
在大多数 GDC 宇宙中,Google 并不拥有这些设施,而是与托管供应商合作,这些供应商的数据中心可提供对强大基础设施、冗余电源和高速连接的访问权限。此方法基于 Google 的高可用性和灾难恢复策略和最佳实践,可为应用和服务提供最佳性能和正常运行时间。
如需详细了解您所在影音平台的灾难网域规范,请与您的运营商联系。
全球 API 和地区 API
GDC air-gapped 提供两个级别的管理平面 API,用于创建和管理全局资源和可用区资源:全局 API 和可用区 API。如需了解如何在 GDC 世界中管理这些 API 类型,请参阅有关全球和区域 管理 API 服务器的文档。
全局 API 和区域 API 都是在不同端点提供的 Kubernetes 声明性 API,而 GDC 资源在 API 服务器中表示为 Kubernetes 自定义资源。全球 API 服务器共享一个分布在各个可用区中的 etcd 集群,以提供具有容错功能的强一致性,但与可用区级 API 服务器相比,延迟时间更长,QPS(每秒查询次数)更低。在每个组织中,可用区管理 API 服务器都会提供可用区 API,供管理员和开发者管理可用区资源;而全局管理 API 服务器则会提供全局 API,供管理员和开发者管理全局资源。
如需详细了解 GDC 中的 API,请参阅 API 概览。
gdcloud CLI
gdcloud CLI 提供多种与区域或全局 API 交互的方式,用于管理资源及其部署,包括:
- 使用 CLI 登录区域级或全球级控制台网址
- 使用可用区级 CLI 标志执行特定可用区操作
全局网址是初始化 gcloud CLI 时默认配置的网址。 您可以更新 gdcloud 配置,以设置可用区级网址并登录这些网址来完成可用区级任务。
同样,gcloud CLI 提供了一个 --zone
标志,您可以针对多个命令组中的许多资源管理任务设置该标志。登录到全局网址配置后,您对全局资源执行的 CLI 操作会应用于这些资源的作用域内的所有可用区。
如需详细了解如何使用 gdcloud CLI 来管理可用区级服务和全局服务,请参阅跨可用区管理资源。
GDC 控制台
给定组织的 GDC 控制台可从同一宇宙中的每个地区访问。因此,您可以使用 GDC 控制台来管理组织内的所有全局资源和区域资源。
您可以通过 GDC 控制台使用以下多可用区功能:
使用完全限定域名 (FQDN) 进行导航:您可以使用全局 FQDN 自动解析为最合适的区域级控制台端点。如果全局 FQDN 因任何原因无法解析,或者您想连接到特定可用区,则可以使用可用区级 FQDN 导航到目标可用区中的特定控制台端点。
管理可用区级资源创建:创建可用区级资源时,系统会提供地区选择器,用于确定资源创建所在的地区。相反,创建全局资源时,系统不会显示地区选择器。
查看各个可用区中的现有资源:GDC 控制台中的各种资源页面会按可用区显示资源。您可以使用地区选择器查看所选地区的资源。您可以通过前往全球和地区 GDC 控制台网址并在选择器中选择相应地区来访问所有地区的资源,但无法查看跨地区的资源汇总视图。
如需详细了解如何使用 GDC 控制台在 GDC 宇宙中的多个可用区之间管理资源,请参阅跨可用区管理资源。
GDC 旨在能够应对故障。因此,如果检测到可用区连接问题,GDC 控制台会显示一个持久性横幅,通知您可能无法更改全局资源。
资源容器
组织定义了要一起管理的资源的安全边界。GDC 空气隔离环境中的每个组织都提供全球 API 和区域 API,以便在该组织内创建全球资源和区域资源。创建全球组织时,运营商负责部署可用区和配置可用区级设置,例如可供用户工作负载使用的存储空间量和物理服务器数量。
如需详细了解贵组织的特定可用区设置,请与您的运营商联系。
项目可在组织内提供服务资源的逻辑分组,并提供用于管理资源的生命周期和政策边界。所有项目都是全球项目,默认情况下会涵盖您在全域中配置的所有可用区。
虽然所有服务资源都必须在项目中创建,但并非所有服务都是全球性的。对于仅在可用区级受支持的服务,您必须在所选可用区内部署和管理这些服务。如需了解详情,请参阅相应资源类型的文档。
IAM
以下 Identity and Access Management (IAM) 服务必须配置为全局资源:
- 用于身份验证的身份提供方 (IdP)
- 基于角色的访问权限控制 (RBAC)
- 服务身份
每项 IAM 配置都涵盖一个宇宙中的所有可用区。
身份验证
您必须使用全局 IdentityProviderConfig
资源将 IdP 连接到组织。此资源可确保您使用同一 IdP 连接到组织中的所有可用区。
如需了解详情,请参阅连接到身份提供方。
访问
每个用户或群组都必须分配有全局 IAMRoleBinding
资源,才能在组织的每个可用区中一致地访问全局和可用区级管理 API 服务器以及 Kubernetes 集群。
全局管理 API 服务器访问权限:
IAMRoleBinding
作为ClusterRoleBinding
或RoleBinding
传播到全局 API 服务器中的预定义ClusterRole
。区域管理 API 服务器访问权限:
IAMRoleBinding
在区域管理 API 服务器中作为ClusterRoleBinding
或RoleBinding
进行传播。Kubernetes 集群访问权限:
IAMRoleBinding
作为ProjectRole
和ProjectRoleBinding
进行传播,以作为 KubernetesRole
和RoleBinding
传播到管理 API 服务器和 Kubernetes 集群中的 Kubernetes 命名空间,对应于ProjectRole
和ProjectRoleBinding
所在的项目。
如需了解详情,请参阅授予和撤消访问权限。
服务身份
服务账号是用户主账号,工作负载和服务使用该账号以编程方式安全地使用资源和访问微服务。它们是一种特殊的身份,由应用或工作负载(而非真人)使用。与用户账号类似,服务账号也可以被授予权限和角色,但无法像真人用户那样登录。服务身份功能包含在全局 ProjectServiceAccount
资源中。
如需了解详情,请参阅使用服务账号进行身份验证。
网络
您可以为 GDC 可用区配置以下网络服务:
- Anycast 服务
- 负载均衡
- 项目网络政策
- DNS
配置全球和可用区级网络服务,以管理 GDC 环境中的可用区间和可用区内网络流量。
Anycast 服务
多地区提供 Anycast 网络服务,以实现跨多个地区的资源的高可用性。同样,数据中心互联 (DCI) 选项以全网状方式实现,用于互联多个 GDC 气隙区域。这使 GDC 能够在多个位置提供多可用区灾难防护,同时满足与任何 Google 基础设施完全断开连接的要求。
任播服务由唯一的 /32 IPv4 前缀表示,这些前缀通过边界网关协议 (BGP) 提供给客户设施,确保从任何连接的网络都可以访问。虽然每个任播服务都可以从 GDC 空气隔离网络中的所有可用区访问,但流量实际定向到的端点取决于多种因素,例如基于自定义路由政策的邻近性和可用区偏好设置。
通过将流量路由到最近的可用服务实例(始终与客户连接位于同一可用区内),优化流量传送。这不仅可以缩短延迟时间,还可以提升服务的整体性能和响应能力。例如,如果 Anycast 服务部署在可用区 1、可用区 2 和可用区 3 中,则源自可用区 2 的客户请求通常会路由到可用区 2 内的服务实例,因为这是最近且最有效的选项。
虽然 Anycast 范围可在全球范围内访问,但仅提供给服务已在其中积极部署的特定可用区中的客户。此访问配置意味着,部署在可用区 1 中的服务仅适用于连接到可用区 1 的客户,而不适用于连接到其他可用区的客户。
此外,GDC 还实现了一个地区偏好系统,其中地区在创建期间会被分配一个数值(无论其地区名称如何),用于设置客户吸引力。例如,如果将任播服务部署到数值为 1
、2
和 3
的可用区,客户流量通常会先定向到数值最低的可用区,然后再定向到其他可用区(作为首选位置)。此偏好设置系统可在一定程度上预测和控制流量模式,但它也包含内置的故障切换机制。如果首选可用区发生故障或中断,系统会自动将流量转移到另一个可用区,确保服务不间断。
在多可用区配置中,如需访问特定可用区内的服务,您的网络需要与该可用区建立互连。为了实现一致的多可用区部署,在您的 YugabyteDB Universe 中,每个可用区中创建的互连在容量和配置方面必须完全相同。您打算访问的每个可用区都必须有相应的互连,并且这些互连彼此相同。
请与您的运营商联系以了解详情。
负载均衡
GDC 为 Kubernetes 和虚拟机工作负载提供 L4 直通负载均衡器。此负载均衡器提供以下配置:
- TCP 或 UDP 协议。
- 工作负载与客户端之间没有代理。
- 为特定可用区或全球所有可用区提供专用负载均衡。
- 组织内部的网络流量,或组织之间的外部网络流量。
下图展示了 GDC 世界中的外部直通式 L4 负载均衡器的组件:
您可以对负载均衡器进行微调,使其在单个可用区内运行,也可以使其在全球范围内(即在所有可用区内)运行。
如需详细了解 GDC 中的负载均衡,请参阅管理负载平衡器。
项目网络政策
项目网络政策用于为项目定义数据传入或数据传出规则。由于项目是全球性资源,因此您还必须在全球范围内定义项目的网络政策,以允许项目内服务和工作负载的跨可用区网络流量。
如需了解详情,请参阅配置项目网络政策。
DNS
域名系统 (DNS) 服务是全球性的,可跨多个可用区使用。如果某个可用区中的 DNS 服务实例无法访问,客户端将由另一个可用区中的另一个 DNS 服务实例无缝处理。
一个可用区中的每个组织都包含三个全球权威 DNS 服务器:
全球基础架构内部服务器:用于解析基础架构虚拟私有云 (VPC) 网络中的 DNS 请求的权威服务器。此服务器仅管理基础架构工作负载。用户工作负载不会与此组件互动。组织在所有可用区中的所有全球基础架构内部部署都可以通过任播 IP 地址进行访问。
全球客户内部服务器:用于解析客户虚拟私有云 (VPC) 网络中的 DNS 请求的权威服务器。此服务器仅管理用户工作负载(例如 Kubernetes 集群中的 pod 或虚拟机 [VM]),并解析源自这些用户工作负载的所有 DNS 请求。组织的所有全球客户内部部署(跨所有可用区)均可通过任播 IP 地址访问。由于 VPC 跨越多个可用区,因此从某个可用区发出的解析全球完全限定域名 (FQDN) 的请求可能会到达任何正常的可用区。
全球客户外部服务器:解析源自客户网络的 DNS 请求的权威服务器。组织的所有全球客户外部部署(跨所有可用区)都可以通过任播 IP 地址访问。
您可以通过专用外部网络或共享外部网络连接到 GDC。这些网络类型决定了 GDC 如何解析您的 DNS 请求。
专用外部网络直接连接到全球客户外部 DNS 服务器,该服务器会解析请求。或者,共享外部网络连接到 DNS 层次结构的根。此根服务器会向全球客户外部 DNS 服务器提供相应 DNS 区域的请求域名服务器 (NS) 记录。然后,您的 DNS 解析器会以递归方式解析该请求。
GDC 可为内部和外部流量提供全球级和可用区级 DNS 解析。
源自外部网络的请求会从 DNS 解析器进行路由。同样,内部 DNS 请求源自 GDC 宇宙中的工作负载。
DNS 请求采用以下 FQDN 格式:
- 全球 DNS 请求:
SERVICE_NAME.ORG_NAME.SUFFIX
,例如service-1.org-1.google.com
。 - 可用区级 DNS 请求:
SERVICE_NAME.ORG_NAME.ZONE_NAME.SUFFIX
,例如service-1.org-1.zone-1.google.com
。
如需详细了解如何在 GDC 宇宙中配置网络,请参阅网络概览。
存储
对于 1.14.4 及更高版本,多区域宇宙支持在异步模式下使用复制的存储资源(例如卷和存储分区),以应对灾难恢复场景。这些存储资源选项可在同一宇宙中的任意两个可用区之间提供异步数据复制。异步复制在后台进行,可在发生灾难时提供较低但非零的 RPO。所有复制的数据都在线且可立即访问,但可能需要执行手动故障切换程序才能在次要可用区中写入数据。
异步块复制:提供异步复制的卷 (PV),可在主卷和辅助卷之间保持块等效性。 由于异步特性,辅助卷将反映过去某个时间点的主卷状态(非零 RPO)。在辅助卷仍为复制目标时,无法装载该卷,需要手动干预才能终止关系并启用写入操作。
异步存储分区复制:复制的存储分区在不同可用区之间配对,从而建立双向数据复制关系。使用此功能写入主可用区或辅助可用区存储分区的对象数据会复制到另一个可用区。由于数据是异步复制的,因此存储分区在任何时间点可能不会包含相同的对象版本,但如果未进行其他更改,最终会保持一致。与卷复制不同,复制的存储分区在可用区分区期间可写入。每次写入对象都会生成不同的版本,并且在恢复连接后,任一可用区中的最新版本都将成为最终状态。
延迟要求
为了确保您可以为当前和未来的功能规划 GDC 可用区位置,我们将延迟时间要求基于 Google Cloud。通过这种方法,您可以放心地选择 GDC 空气隔离位置,因为您知道这些区域是否位于同一地区。
在区域内任意两个可用区之间,物理层的最大支持延迟时间小于 1 毫秒的往返时间 (RTT)。由于在物理层计算延迟需要使用大多数情况下无法获得的专用设备,因此可以通过测量两个区域之间的光纤长度来近似计算延迟。
如果区域中可用区的主路径光纤长度为 50 公里,次路径光纤长度为 100 公里,则支持区域级服务。在环形网络中,此要求意味着每根光纤的长度不得超过 50 公里。
如需详细了解您的具体延迟时间要求,请与您的运营商联系。
后续步骤
- 了解 GDC 世界中提供的全球和可用区 API 服务器。
- 请参阅高可用性指南,确保您的应用能够应对本地可用区故障。
- 如需详细了解如何在区域内以分层方式管理资源,请参阅资源层次结构页面。