适用于混合云和多云部署的 NetScaler 全局负载均衡
NetScaler 混合云和多云全局负载均衡 (GLB) 解决方案使您能够在混合云、多云和本地部署中的多个数据中心之间分发应用程序流量。NetScaler 混合云和多云 GLB 解决方案可帮助您在混合云或多云中管理负载均衡设置,而无需更改现有设置。此外,如果您有本地设置,则可以在完全迁移到云之前,使用 NetScaler 混合云和多云 GLB 解决方案在云中测试您的部分服务。例如,您可以仅将一小部分流量路由到云,并在本地处理大部分流量。NetScaler 混合云和多云 GLB 解决方案还使您能够从单个统一控制台管理和监控跨地理位置的 NetScaler 实例。
混合云和多云架构还可以通过避免“供应商锁定”以及使用不同的基础架构来满足合作伙伴和客户的需求,从而提高整体企业性能。借助多云架构,您可以更好地管理基础架构成本,因为现在只需按使用量付费。此外,由于现在可以按需使用基础架构,因此可以更好地扩展应用程序。它还提供了快速从一个云切换到另一个云的能力,以利用每个提供商的最佳产品。
NetScaler 混合云和多云 GLB 解决方案的架构
下图说明了 NetScaler 混合云和多云 GLB 功能的架构。
NetScaler GLB 节点处理 DNS 名称解析。任何 GLB 节点都可以接收来自任何客户端位置的 DNS 请求。接收 DNS 请求的 GLB 节点根据配置的负载均衡方法返回负载均衡虚拟服务器 IP 地址。指标(站点、网络和持久性指标)使用指标交换协议 (MEP) 在 GLB 节点之间交换,MEP 是 Citrix 的专有协议。有关 MEP 协议的更多信息,请参阅 配置指标交换协议。
GLB 节点中配置的监视器监控同一数据中心中负载均衡虚拟服务器的运行状况。在父子拓扑中,GLB 和 NetScaler 节点之间的指标通过 MEP 交换。但是,在父子拓扑中,配置 GLB 和 NetScaler LB 节点之间的监视器探测是可选的。
代理实现 NetScaler Console 与数据中心中托管实例之间的通信。有关代理以及如何安装它们的更多信息,请参阅 入门。
注意
本文档做出以下假设:
-
如果您有现有的负载均衡设置,它已启动并正在运行。
-
已在每个 NetScaler GLB 节点上配置 SNIP 地址或 GLB 站点 IP 地址。此 IP 地址在与其他数据中心交换指标时用作数据中心源 IP 地址。
-
已在每个 NetScaler GLB 实例上配置 ADNS 或 ADNS-TCP 服务,以接收 DNS 流量。
-
已在云服务提供商中配置所需的防火墙和安全组。
安全组配置
您必须在云服务提供商中设置所需的防火墙/安全组配置。有关 AWS 安全功能的更多信息,请参阅 AWS 文档。有关 Microsoft Azure 网络安全组的更多信息,请参阅 Microsoft Azure 文档。
此外,在 GLB 节点上,您必须为 ADNS 服务/DNS 服务器 IP 地址打开端口 53,并为 MEP 流量交换的 GSLB 站点 IP 地址打开端口 3009。在负载均衡节点上,您必须打开相应的端口以接收应用程序流量。例如,您必须打开端口 80 以接收 HTTP 流量,并打开端口 443 以接收 HTTPS 流量。打开端口 443 以用于代理和 NetScaler Console 之间的 NITRO 通信。
对于动态往返时间 GLB 方法,您必须打开端口 53 以允许 UDP 和 TCP 探测,具体取决于配置的 LDNS 探测类型。UDP 或 TCP 探测是使用其中一个 SNIP 启动的,因此必须为绑定到服务器端子网的安全组进行此设置。
NetScaler 混合和多云 GLB 解决方案的功能
本节介绍 NetScaler 混合和多云 GLB 解决方案的一些功能:
与其他负载均衡解决方案的兼容性
NetScaler 混合和多云 GLB 解决方案支持各种负载均衡解决方案,例如 NetScaler 负载均衡器、Nginx 和其他第三方负载均衡器。
注意
除 NetScaler 之外的负载均衡解决方案仅在使用了基于邻近性和非度量的 GLB 方法且未配置父子拓扑时才受支持。
GLB 方法
NetScaler 混合和多云 GLB 解决方案支持以下 GLB 方法。
-
基于度量的 GLB 方法。基于度量的 GLB 方法通过度量交换协议从其他 NetScaler 节点收集度量。
-
最少连接:客户端请求被路由到活动连接数最少的负载均衡器。
-
最少带宽:客户端请求被路由到当前处理流量最少的负载均衡器。
-
最少数据包:客户端请求被路由到在过去 14 秒内接收到最少数据包的负载均衡器。
-
-
非基于指标的 GLB 方法
-
轮询:客户端请求被路由到负载均衡器列表顶部的负载均衡器的 IP 地址。该负载均衡器随后移动到列表底部。
-
源 IP 哈希:此方法使用客户端 IP 地址的哈希值来选择负载均衡器。
-
-
基于邻近度的 GLB 方法
-
静态邻近度:客户端请求被路由到最接近客户端 IP 地址的负载均衡器。
-
往返时间 (RTT):此方法使用 RTT 值(客户端本地 DNS 服务器与数据中心之间连接的时间延迟)来选择性能最佳的负载均衡器的 IP 地址。
-
有关负载均衡方法的更多信息,请参阅 负载均衡算法。
GLB 拓扑
NetScaler 混合和多云 GLB 解决方案支持主动-被动拓扑和父子拓扑。
-
主动-被动拓扑 - 通过防止故障点来提供灾难恢复并确保应用程序的持续可用性。如果主数据中心发生故障,被动数据中心将投入运行。有关 GSLB 主动-被动拓扑的更多信息,请参阅 配置 GSLB 以实现灾难恢复。
-
父子拓扑 – 如果您使用基于指标的 GLB 方法配置 GLB 和 LB 节点,并且 LB 节点部署在不同的 NetScaler 实例上,则可以使用父子拓扑。在父子拓扑中,LB 节点(子站点)必须是 NetScaler 设备,因为父站点和子站点之间的指标交换是通过指标交换协议 (MEP) 进行的。
有关父子拓扑的更多信息,请参阅 使用 MEP 协议部署父子拓扑。
IPv6 支持
NetScaler 混合和多云 GLB 解决方案也支持 IPv6。
监视
NetScaler 混合和多云 GLB 解决方案支持内置监视器,并可选择启用安全连接。但是,如果 LB 和 GLB 配置位于同一 NetScaler 实例上,或者使用父子拓扑,则配置监视器是可选的。
持久性
NetScaler 混合和多云 GLB 解决方案支持以下功能:
-
基于源 IP 的持久会话,以便来自同一客户端的多个请求(如果在配置的超时窗口内到达)被定向到同一服务。如果在客户端发送另一个请求之前超时值过期,则会话将被丢弃,并使用配置的负载均衡算法为客户端的下一个请求选择一个新服务器。
-
溢出持久性,以便备份虚拟服务器继续处理其接收到的请求,即使主服务器上的负载低于阈值。有关详细信息,请参阅 配置溢出。
-
站点持久性,以便 GLB 节点选择一个数据中心来处理客户端请求,并将所选数据中心的 IP 地址转发给所有后续 DNS 请求。如果配置的持久性应用于处于 DOWN 状态的站点,GLB 节点将使用 GLB 方法选择一个新站点,新站点将对来自客户端的后续请求保持持久性。
使用 NetScaler Console StyleBook 进行配置
您可以使用 NetScaler Console 上的默认多云 GLB StyleBook 来配置具有混合和多云 GLB 配置的 NetScaler 实例。
您可以使用用于 LB 节点 StyleBook 的默认多云 GLB StyleBook 来配置 NetScaler 负载均衡节点,这些节点是父子拓扑中的子站点,用于处理应用程序流量。仅当您想在父子拓扑中配置 LB 节点时才使用此 StyleBook。但是,每个 LB 节点都必须使用此 StyleBook 单独配置。
NetScaler 混合和多云 GLB 解决方案配置的工作流
您可以使用 NetScaler Console 上随附的多云 GLB StyleBook 来配置具有混合和多云 GLB 配置的 NetScaler 实例。
下图显示了配置 NetScaler 混合和多云 GLB 解决方案的工作流。工作流图中的步骤将在图后进行更详细的解释。
作为云管理员,执行以下任务:
-
注册 Citrix Cloud™ 账户。要开始使用 NetScaler Console,请创建 Citrix Cloud 公司账户或加入您公司中已有人创建的现有账户。
-
登录 Citrix Cloud 后,单击 NetScaler Console 磁贴上的管理以首次设置 NetScaler Console。
-
下载并安装多个代理。您必须在网络环境中安装和配置代理,以实现 NetScaler Console 与数据中心或云中的托管实例之间的通信。在每个区域安装一个代理,以便您可以在托管实例上配置 LB 和 GLB 配置。LB 和 GLB 配置可以共享一个代理。有关上述三项任务的更多信息,请参阅入门。
-
在 Microsoft Azure/AWS 云平台或本地数据中心部署负载均衡器。根据您在云和本地部署的负载均衡器类型,相应地进行预配。例如,您可以在 Microsoft Azure Resource Manager (ARM) 门户、Amazon Web Services (AWS) 虚拟私有云以及本地数据中心中预配 NetScaler VPX 实例。通过创建虚拟机和配置其他资源,将 NetScaler 实例配置为在独立模式下充当 LB 或 GLB 节点。有关如何部署 NetScaler VPX 实例的更多信息,请参阅以下文档:
-
执行安全配置。在 ARM 或 AWS 中配置网络安全组和网络 ACL,以控制实例和子网的入站和出站流量。
-
在 NetScaler Console 中添加 NetScaler 实例。NetScaler 实例是您希望从 NetScaler Console 发现、管理和监控的网络设备或虚拟设备。要管理和监控这些实例,您必须将实例添加到服务并注册 LB(如果您将 NetScaler 用于 LB)和 GLB 实例。有关如何在 NetScaler Console 中添加 NetScaler 实例的更多信息,请参阅入门。
-
使用默认的 NetScaler Console StyleBook 实施 GLB 和 LB 配置。
-
使用 Multi-cloud GLB StyleBook 在选定的 GLB NetScaler 实例上运行 GLB 配置。
-
实施负载均衡配置。(如果托管实例上已有 LB 配置,则可以跳过此步骤。)
您可以通过以下两种方式之一在 NetScaler 实例上配置负载均衡器:-
手动配置实例以对应用程序进行负载均衡。有关如何手动配置实例的更多信息,请参阅 设置基本负载均衡。
-
使用 StyleBooks。您可以使用 NetScaler Console StyleBooks 之一(HTTP/SSL 负载均衡 StyleBook 或 HTTP/SSL 负载均衡(带监视器)StyleBook)在选定的 NetScaler 实例上创建负载均衡器配置。您还可以创建自己的 StyleBooks。有关 StyleBooks 的更多信息,请参阅 StyleBooks。
-
-
使用 用于 LB 节点的云间 GLB StyleBook 在以下任何情况下配置 GLB 父子拓扑:
-
如果您正在使用基于指标的 GLB 算法(最少数据包、最少连接、最少带宽)来配置 GLB 和 LB 节点,并且 LB 节点部署在不同的 NetScaler 实例上。
-
如果需要站点持久性。
-