使用全局负载均衡器
IBM Cloud® DNS Services 提供全局负载均衡即服务,根据源服务器的运行状况和用户请求产生的地理区域,为您提供高可用性和流量地理分布。
例如,在 DNS 区域 example.com
中,将创建 DNS 主机名 api.example.com
作为全局负载均衡器。 主机名 api.example.com
可以根据请求者的位置和源的运行状况解析为不同的 IP 地址。 如果任何或所有源 (基于策略) 在一个区域中都不可用,那么将返回来自不同区域的正常源以响应 DNS 查询。 这将确保主机名 api.example.com
的高可用性。 它还确保负载在不同源之间进行地理分布,并在区域上进行路由。
全局负载均衡器限制
全局负载均衡功能存在以下限制。
- 您可以具有以下 DNS Services 实例:
- 最多 100 个运行状况检查监视器
- 最多 100 个运行状况检查子网
- 最多 100 个源池
- 每个源池最多可以有 5 个源
- 每个源池只能使用 2 个子网进行运行状况监视
- 最多 100 个源
- 每个 DNS 区域最多可以有 25 个全局负载均衡器
- 对于跨账户链接区域,位置策略由所有者账户的 VPC 区域地图决定。
用例和工作流程
全局负载均衡器最常见的用途是将流量定向到运行状况正常的源和分发负载。
以下工作流程是从 DNS Services 区域仪表板执行的。 浏览至 全局负载均衡器 选项卡以查看 负载均衡器在一组服务器间分配工作负载的软件或硬件,用于确保服务器不会超负荷。 负载均衡器还用于在初始服务器发生故障时,将用户定向到另一台服务器。,源池和 运行状况检查一个过程,用于监视系统资源和条件以确定系统是否高效运行。 运行状况检查可配置为及早报告潜在问题并显示警告和故障级别,以免危及系统完整性。。
创建具有源运行状况监视的全局负载均衡器
通过源运行状况监视创建全局负载均衡器,将高可用性与任务关键型应用程序的地理负载均衡相结合。 此工作流程确保流量仅路由到正常的源。
遵循此工作流程以创建具有源运行状况监视的全局负载均衡器:
- 创建运行状况检查。
- 创建源池并指定要使用的运行状况检查。
- 创建全局负载均衡器。
HTTP 和 HTTPS 运行状况检查使用以下 HTTP 用户代理程序: "Mozilla/5.0 (compatible; IBM-Cloud-DNS-Services/1.0; Health-Check/1.0; pool-id=12345678-1234-1234-1234-123456789012)"
。 pool-id
设置为配置了运行状况检查的负载均衡器池。
创建没有源运行状况监视的全局负载均衡器
在此配置中,DNS Services 根据配置的策略提供地理负载均衡,但不提供高可用性功能。
创建 DNS 区域并向其添加允许的网络后,请遵循以下工作流程来创建全局负载均衡器:
- 创建源池。
- 创建全局负载平衡器。
创建运行状况检查
创建运行状况检查以指定如何监视源运行状况。DNS Services 支持 HTTP,HTTPS 和 TCP 监视类型。 创建运行状况检查后,可以将其添加到新的或现有的源池。 运行状况检查存在于实例级别,并且可供实例中的任何池使用。
如果由于运行状况检查失败而将源标记为运行状况不佳,那么单个通过的运行状况检查足以使源恢复到正常状态。
请按照以下步骤创建健康检查:
-
从 DNS Services 导航菜单中,单击 全局负载均衡器,然后选择 运行状况检查 选项卡。
-
单击 创建运行状况检查 以启动。
-
在 运行状况检查名称 字段中,为运行状况检查提供名称。
-
(可选) 输入运行状况检查的 描述,以帮助您了解它正在监视的内容。
-
选择监视器类型。 选择用于健康检查的协议。 受支持的监视器类型为 HTTP,HTTPS 和 TCP。 默认值为
HTTP
。 如果选择了 HTTPS,那么 不验证证书 复选框将显示在 高级选项 部分之后。 如果源上的 HTTPS 证书未由认证中心 (例如,自签名证书) 签署,请选中此框。 -
输入要执行健康检查的端点路径。 默认值为
/
。 -
(可选) 输入要使用的 端口 号。 要使运行状况检查成功,必须在响应运行状况监视请求的源上运行相关应用程序。
-
在 高级设置 部分中,选择每次运行状况检查之间的 测试时间间隔 (以秒计)。 更短的时间间隔可以缩短故障切换时间,但会增加源的负载,因为检查来自多个位置。 缺省值为
60
。 -
从列表中选择要用于运行状况检查的 方法 (仅限 HTTP 和 HTTPS)。 默认值为
GET
。 -
选择 超时 时间间隔 (以秒计)。 超时时间间隔是运行状况检查在发生超时错误之前等待的时间长度。 默认值为
5
。 -
选择要尝试的 重试次数。 确定在声明源运行状况检查失败之前尝试运行状况检查的次数。 重试会立即尝试执行。 默认值为
1
。 TCP 监视器类型选项以此步骤结束。 单击 创建 以保存更改并创建运行状况检查。 HTTP 和 HTTPS 监视器类型具有其他选项,如下所示。 -
输入 预期响应代码,即运行状况检查的 HTTP 响应代码或代码范围。 该值必须在
200-299
之间,通配符用x
表示。 -
(可选) 输入 响应主体,这是要在响应主体中与之匹配的不区分大小写的子串。 如果未找到此字符串,那么会将源标记为运行不正常。
-
在可选的 请求头 部分中,可以添加和配置要在运行状况检查中发送的 HTTP 请求头。 在提供的字段中输入头名称和值。 单击 添加请求头 以配置其他头。
-
单击 创建 以保存更改并创建运行状况检查。
添加源池
起源池将您的起源分组,供负载平衡器使用。 源可以是 IP 或主机名。 决定是要创建受监视还是未受监视的源池。 对于受监视池,必须指定要使用的运行状况检查以及从中监视运行状况的子网。 源池存在于实例级别,并且可供实例中配置的任何 DNS 区域中的任何全局负载均衡器使用。
开始之前,在使用源池时,请记住以下注意事项:
- 每个负载平衡器至少需要一个源池。
- 即使禁用了源池,也会继续进行源运行状况监视。 要在源上禁用运行状况监视,可以禁用源。
- 创建源池时,可能需要 1-10 分钟才能启动运行状况检查,在此期间池将显示为
Critical
状态。 - 除非从要监视的源池中除去运行状况检查,否则无法删除用于运行状况监视的子网。
- 如果在池中提供了主机名作为源,那么它可以是 A,AAAA 或 CNAME 资源记录以及另一个负载均衡器。 但是,在解析长 CNAME 链或负载均衡器时,可能会看到性能较慢。
必须更新 VPC 安全组以允许来自运行状况监视子网的流量。 请参阅 安全组 以获取更多信息。
要创建源池,请按照以下步骤操作:
-
从 DNS Services 导航菜单中,单击 全局负载均衡器,然后选择 源池 选项卡。
-
单击创建原点池。 默认情况下已启用池。
禁用池会导致使用该池的任何负载均衡器故障转移到下一个池 (如果有)。 禁用的池不会接收流量。
-
为池输入名称。 仅允许字母数字字符、连字符和下划线。
-
可选择输入源池的描述。
-
启用 源 以添加到此池中的源列表。
-
为源提供 名称 和 地址。 单击 添加 以添加更多池,并移动开关以关闭或打开池。 只要水池本身是健康的,那么流向该水池的流量就会在所有当前健康的源头之间保持平衡。 运行状况检查排除已禁用的源。
-
选择“健康起源”阈值,这是该池为流量提供服务时必须保持健康的最小起源数量。 如果健康数据源的数量低于这个数字,该数据池就会被标记为不健康,并切换到下一个可用的数据池。 默认值为
1
。 -
在 运行状况监视 部分中,选择 运行状况检查 以确定运行状况检查使用的方法以及用于检查此池中的源的运行状况检查。 缺省值为“无运行状况检查”。
-
选择运行状况检查从中执行监视的 运行状况检查区域。 选项包括 达拉斯,法兰克福,伦敦,马德里,大坂,圣保罗,悉尼,东京,多伦多,华盛顿特区和 巴黎 (巴黎仅适用于受限用户)。
-
选择包含发起运行状况检查的子网的 VPC。
-
选择子网(位置)。 从列表菜单中选择子网和位置。 这定义运行状况检查从哪个子网运行。 最多可以指定两个子网。
-
单击 创建 以保存更改并创建源池。
首次创建源池时,其状态为 Critical
,源的状态为 Down
,因为初始运行状况检查尚未完成。 在源的运行状况检查成功完成后,将更新状态。
状态定义
下表描述了您可能在源,源池和全局负载均衡器中看到的可能状态。
功能 | 状态 | 定义 |
---|---|---|
源 | up down |
启动: 源正常运行。 向下: 源已向下。 至少 50% 的源运行状况检查必须符合源运行状况才能保持 healthy 。 |
源池 | healthy degraded critical |
运行状况: 池中的所有源都已启动。 已降级: 至少有一个源状态为 "已关闭"。 临界: 池中正常运行的源数小于正常运行的源池阈值。 例如,如果阈值为 2 ,并且只有一个源启动,那么池状态为 紧急。 |
全局负载均衡器 | healthy degraded critical |
正常运行: 与全局负载均衡器关联的所有源池都正常运行。 已降级: 至少一个源池处于已降级状态。 临界: 当与全局负载均衡器关联的所有源池都处于临界状态时,全局负载均衡器状态为临界。 |
评估全局负载均衡器的运行状况时,不会考虑回退池状态。
安全组
更新 VPC 的安全组,以允许来自运行状况监视子网上的运行状况检查程序正在使用的 IP 地址的传入运行状况检查流量。 目前,可以通过允许整个子网 CIDR 的流量来完成此操作。
创建全局负载平衡器
负载均衡器可帮助在多个源池之间分发流量。
请按照以下步骤创建负载平衡器:
要设置全局负载均衡器,必须首先创建源池。
- 从 DNS Services 导航菜单中,单击 全局负载均衡器,然后选择 负载均衡器 选项卡。
- 从列表中选择 DNS 区域。
- 单击创建负载均衡器。
- 输入 DNS Balancer 主机名,将其与负载平衡器关联。
- 可选择输入全局负载平衡器的描述。
- 选择此负载平衡器返回的 IP 地址的 DNS 条目的 TTL(生存时间)。
- 添加或选择 缺省策略。 缺省策略指定哪些源池用于未指定基于位置的策略的所有可用性区域 (AZ)。 在策略中选择多个池时,可以使用 优先级 列中的方向键来更改其优先级。
- 添加或选择 回退策略。 回退策略指定当缺省或位置策略中的所有其他源池处于临界状态时要使用的源池。 回退策略中只能有一个源池。
- (可选) 添加或选择 位置策略。 位置策略允许您关联特定 AZ 的一个或多个源池。 未显式定义为位置策略的任何 AZ 都将使用缺省策略。
DNS 解析器如何确定全局负载均衡池的优先级
DNS 解析器使用以下顺序从源池返回源。
位置策略> 缺省策略> 回退策略
位置策略 (如果在 AZ 中定义了位置策略) 具有最高优先级并首先使用。 如果位置策略中的每个源池都已关闭,那么 DNS 解析器将使用缺省策略中的源池。 如果缺省策略中的所有源池也已关闭,那么 DNS 解析器将转至回退策略中指定的源池。
DNS 解析器如何处理 DNS 响应的资源记录 TTL
如前所述,如果源地址是主机名,那么此主机名可以表示 A,AAAA 或 CNAME 资源记录的名称。 在这些场景中,使用全局负载均衡器解析的 DNS 查询可能需要解析器同时考虑多个资源记录。
当 DNS 解析器对查询的响应时,它会选择在所考虑的一组资源记录中观察到的最低 TTL,并选择在全局负载均衡器本身上配置的 TTL 作为响应中资源记录的 TTL。
生成的基于全局负载均衡器的 DNS 响应可能仅包含必需的 A 或 AAAA 记录 (引用负载均衡的 IP 地址)。 但是,全局负载均衡器所依赖的其他项的配置也会影响 DNS 响应中的 TTL。 当具有引用 CNAME 资源记录的地址的源 (CNAME 资源记录是所需 A 或 AAAA 资源记录的 CNAME 链的一部分) 时,尤其如此。
可能存在其他场景,即源地址引用公共因特网上的其他 DNS 区域上配置的资源记录,或者导致其他资源记录链。 因此,DNS 解析器所考虑的某些资源记录可能来自其他上游 DNS 解析器。 如果上游 DNS 解析器的高速缓存资源记录由于其特定高速缓存方法而在其高速缓存中包含较低的 TTL,那么在所有考虑的资源记录中观察到的最小 TTL 可能会被推低。 这将导致包含 TTL 低于最大预期持续时间的资源记录的 DNS 响应。
查看,编辑或删除全局负载均衡器的组件
要查看,编辑或删除负载均衡器或其某个组件,请单击负载均衡器表行上的溢出菜单 中的操作。
为每个列表提供了以下选项。
-
运行状况检查
- 编辑健康检查- 重定向到编辑流程。
- 删除运行状况检查-显示删除流程的确认对话框。
-
源池
- 编辑池- 重定向到编辑流程。
- 删除池-显示删除流的确认对话框。
-
负载均衡器
- 编辑负载平衡器- 重定向到编辑流程。
- 删除负载平衡器- 显示删除流程的确认对话框。