ADC

配置 GSLB 服务组

服务组使您能够像管理单个服务一样轻松地管理一组服务。如果启用或禁用某个服务组的任何选项,则会为该服务组的所有成员启用或禁用该选项。例如,您可以将此功能应用于压缩、运行状况监视和正常关机等选项。

创建服务组后,您可以执行以下任一操作:

  • 将服务组绑定到虚拟服务器。
  • 将服务添加到服务组。
  • 将监视器绑定到服务组。

重要

如果负载平衡虚拟服务器位于 GSLB 节点本身或位于子节点(在父子部署中)中,并且没有监视器绑定到 GSLB 服务,请确保满足以下条件:

GLSB 服务组 IP 地址、端口号和协议与该服务所在的虚拟服务器匹配代表。否则,服务状态将标记为DOWN。

NetScaler 支持以下类型的 GSLB 服务组。

  • 基于 IP 地址的服务组
  • 基于域名的服务组
  • 基于域名的自动扩展服务组

基于 GSLB 域名的自动缩放服务组

NetScaler 混合云和多云全球服务器负载平衡 (GSLB) 解决方案使客户能够在混合云、多云和本地的多个数据中心之间分配应用程序流量。NetScaler GSLB 解决方案支持各种负载平衡解决方案,例如 NetScaler 负载均衡器、适用于 AWS 的弹性负载平衡 (ELB) 和其他第三方负载均衡器。此外,即使 GSLB 和负载均衡层是独立管理的,GSLB 解决方案也会执行全局负载平衡。

在云部署中,用户在出于管理目的访问负载均衡解决方案时会获得域名作为参考。建议外部实体不要使用这些域名解析到的 IP 地址。此外,负载平衡层会根据负载向上或向下扩展,并且不能保证IP地址是静态的。因此,建议使用域名来指代负载均衡终端节点,而不是 IP 地址。这要求使用域名而不是 IP 地址来引用 GSLB 服务,并且必须使用为负载平衡层域名返回的所有 IP 地址,并在 GSLB 中使用相同的表示形式。

要在引用负载平衡终端节点时使用域名而不是 IP 地址,您可以将基于域名的服务组用于 GSLB。

监视基于 GSLB 域名的服务组

NetScaler 设备有两个内置监视器,用于监视基于 TCP 的应用程序; tcp-defaultping-defaulttcp-default 监视器绑定到所有 TCP 服务, ping-default 监视器绑定到所有非 TCP 服务。默认情况下,内置监视器绑定到 GSLB 服务组。但是,建议将特定于应用程序的监视器绑定到 GSLB 服务组。

关于将触发器监视器选项设置为 MEPDOWN 的建议

“触发监视器”选项可用于指示 GSLB 站点是否必须始终使用监视器,还是在度量交换协议 (MEP) 关闭时使用监视器。

默认情况下,“触发监视器”选项设置为“始终”。

当“触发监视器”选项设置为“始终”时,每个 GSLB 节点都会单独触发监视器。如果每个 GSLB 节点独立触发监视器,则每个 GSLB 节点可能会在不同的 GSLB 服务集上运行。这可能会导致登陆这些 GSLB 节点上的 DNS 请求的 DNS 响应出现差异。此外,如果每个 GSLB 节点都在独立监视,则到达负载均衡器实体的监视器探测器数量会增加。持久性条目也会在 GSLB 节点之间变得不兼容。

因此,建议将 GSLB 站点实体上的“触发器监视器”选项设置为 MEPDOWN。当触发器监视器选项设置为 MEPDOWN 时,负载平衡域解析和监视所有权属于本地 GSLB 节点。当触发器监视器选项设置为 MEPDOWN 时,负载平衡域解析和后续监视将由 GSLB 服务组的本地 GSLB 节点完成。然后使用度量交换协议 (MEP) 将结果传播到参与GSLB的所有其他节点。

此外,每当更新与负载平衡域关联的 IP 地址集时,都会通过 MEP 进行通知。

GSLB 服务组的局限性

  • 对于负载平衡域,DNS 响应中返回的 IP 地址通常是公有 IP 地址。解析负载平衡域时,无法动态应用专用 IP 地址。因此,基于 GSLB 域名的自动缩放服务组 IP 端口绑定的公共 IP 端口和私有 IP 端口是相同的。无法为基于域名的 autoScale 服务组显式设置这些参数。
  • GSLB 服务组不支持站点持久性、DNS 视图和群集。

使用 CLI 配置和管理 GSLB 服务组

要添加 GSLB 服务组,请执行以下操作:

add gslb serviceGroup <serviceGroupName>@ <serviceType> [-autoScale ( DISABLED | DNS )] -siteName <string>
<!--NeedCopy-->

示例:

add gslb serviceGroup Service-Group-1 http -autoScale DNS -siteName Site1
<!--NeedCopy-->

要将 GSLB 服务组绑定到虚拟服务器,请执行以下操作:

bind gslb serviceGroup <serviceGroupName> ((<IP>@ <port>) | <serverName>@ | (-monitorName <string>@))
<!--NeedCopy-->

示例:

bind gslb serviceGroup Service-Group-1 203.0.113.2
bind gslb serviceGroup Service-Group-1 S1 80
bind gslb serviceGroup** Service-Group-1 -monitorName Mon1
<!--NeedCopy-->

要解除 GSLB 服务组与虚拟服务器的绑定,请执行以下操作:

unbind gslb serviceGroup <serviceGroupName> ((<IP>@ <port>) | <serverName>@ | -monitorName <string>@)
<!--NeedCopy-->

示例:

unbind gslb serviceGroup Service-Group-1 -monitorName Mon1
<!--NeedCopy-->

要为 GSLB 服务组设置参数,请执行以下操作:

set gslb serviceGroup <serviceGroupName>@ [(<serverName>@ <port> [-weight <positive_integer>] [-hashId <positive_integer>] [-publicIP <ip_addr|ipv6_addr|*>] [-publicPort <port>]) | -maxClient <positive_integer> | -cip ( ENABLED | DISABLED ) | <cipHeader> | -cltTimeout <secs> | -svrTimeout <secs> | -maxBandwidth <positive_integer> | -monThreshold <positive_integer> | -downStateFlush ( ENABLED | DISABLED )] [-monitorName <string> -weight <positive_integer>] [-healthMonitor ( YES | NO )] [-comment <string>] [-appflowLog ( ENABLED | DISABLED )]
<!--NeedCopy-->

要取消设置 GSLB 服务组中的参数,请执行以下操作:

unset gslb serviceGroup <serviceGroupName>@ [<serverName>@ <port> [-weight] [-hashId] [-publicIP] [-publicPort]] [-maxClient] [-cip] [-cltTimeout] [-svrTimeout] [-maxBandwidth] [-monThreshold] [-appflowLog] [-monitorName] [-weight] [-healthMonitor] [-cipHeader] [-downStateFlush] [-comment]
<!--NeedCopy-->

启用 GSLB 服务组

enable gslb serviceGroup <serviceGroupName>@ [<serverName>@ <port>]
<!--NeedCopy-->

示例:

enable gslb serviceGroup SG1 S1 80
<!--NeedCopy-->

禁用 GSLB 服务组

disable gslb serviceGroup <serviceGroupName>@ [<serverName>@ <port>] [-delay <secs>] [-graceFul ( YES /| NO )]
<!--NeedCopy-->

示例:

disable gslb serviceGroup SRG2 S1 80
<!--NeedCopy-->

注意:

必须禁用的服务组必须是星展银行服务组,而不是自动扩展服务组。

要删除 GSLB 服务组,请执行以下操作:

rm gslb serviceGroup <serviceGroupName>
<!--NeedCopy-->

示例:

rm gslb serviceGroup Service-Group-1
<!--NeedCopy-->

要查看 GSLB 服务组的统计信息,请执行以下操作:

stat gslb serviceGroup [<serviceGroupName>]
<!--NeedCopy-->

示例:

stat gslb serviceGroup Service-Group-1
<!--NeedCopy-->

要查看 GSLB 服务组的属性,请执行以下操作:

show gslb serviceGroup [<serviceGroupName>  -includeMembers]
<!--NeedCopy-->

示例:

show gslb serviceGroup SG1
show gslb serviceGroup -includeMembers
<!--NeedCopy-->

启用或禁用 GSLB 服务组成员

您可以有选择地启用或禁用 GSLB(基于 DNS)服务组的单个成员,而不是启用或禁用整个服务组。此功能在 autoScale 服务组和非 autoScale 服务组中均可用。因此,管理 GSLB 服务组变得更加容易。

例如,您需要避免流向GSLB站点上的特定服务器的流量。假设有 10 个 GSLB 服务或服务器(S1 到 S10)绑定到一个服务组(SG1)。您只想禁用服务 5 (S5),即避免到服务器 5 的流量。如果没有此功能,您必须分别将服务 S1 绑定到 S4,将服务 S6 分别绑定到 S10。在必须禁用或启用大量服务的大型 GSLB 服务组中,此过程变得乏味。使用此功能,您可以直接禁用服务 5 (S5),而不会影响服务组中的其他服务。

要使用 CLI 启用 GSLB 服务组成员,请执行以下操作:

enable gslb serviceGroup <serviceGroupName>@ [<serverName>@ <port>]
<!--NeedCopy-->

注意:

要启用 GSLB 服务组,请仅提供服务组名称。要启用服务组的成员,除了 GSLB 服务组名称外,还需要提供托管服务的服务器的名称和服务的端口号。

示例:

enable gslb serviceGroup http_svc_group 10.102.27.153 80
<!--NeedCopy-->

要使用 CLI 禁用 GSLB 服务组或 GSLB 服务组的成员,请执行以下操作:

disable gslb serviceGroup <serviceGroupName>@ [<serverName>@ <port>]
<!--NeedCopy-->

示例:

disable gslb serviceGroup http_svc_group 10.102.27.153 80
<!--NeedCopy-->

注意:

要禁用 GSLB 服务组,请仅提供服务组名称。要禁用服务组的成员,除了 GSLB 服务组名称外,还需要提供托管服务的服务器的名称和服务的端口号。

对现有 GSLB CLI 命令的更改

以下是引入 GSLB 服务组后对现有 GSLB 命令所做的更改:

  • bind gslb vserver -服务组名称已添加到 bind 命令中。

    示例:

     bind gslb vserver <name> ((-serviceName <string> [-weight <positive_integer>] ) | <serviceGroupName>@ | | (-domainName <string> [-TTL <secs>] [-backupIP<ip_addr|ipv6_addr|*>] [-cookieDomain <string>] [-cookieTimeout <mins>][-sitedomainTTL <secs>]) | (-policyName <string>@ [-priority<positive_integer>] [-gotoPriorityExpression <expression>] [-type REQUEST | RESPONSE )]))
     <!--NeedCopy-->
    
  • unbind gslb vserver -服务组已添加到 unbind 命令中。

    示例:

     unbind gslb vserver <name> (-serviceName <string> <serviceGroupName> @ /(-domainName <string> [-backupIP] [-cookieDomain]) | -policyName <string>@)
     <!--NeedCopy-->
    
  • show gslb site -运行此命令时,还会显示 GSLB 服务组。

  • show gslb vs -运行此命令时,将显示 GSLB 服务组。

  • stat gslb vs -运行此命令时,还会显示 GSLB 服务组统计信息。

  • show lb monitor bindings -运行此命令时,还会显示 GSLB 服务组绑定。

使用 GUI 配置 GSLB 服务组

  1. 导航到 流量管理 > GSLB > 服务组。
  2. 创建一个服务组并将自动缩放模式设置为 DNS。

为 GSLB 服务组配置站点持久性

您可以为基于 IP 地址的服务组和基于域名的服务组配置站点持久性。基于域名的自动扩展服务组不支持站点持久性。

  • 对于连接代理持久性,您不必设置站点前缀。

    在命令提示符下,键入:

     set gslb service group <serviceGroupName> [-sitePersistence <sitePersistence>]
     <!--NeedCopy-->
    
  • 对于 HTTP 重定向持久性,必须首先为服务组的成员设置站点前缀,然后为服务组设置 HTTPRedirect 持久性参数。

    在命令提示符下,键入:

     set gslb servicegroup <serviceGroupName>  <serviceGroup member name|Ip> <port>  [-sitePrefix <string>]
    
     set gslb servicegroup <serviceGroupName> [-sitePersistence <sitePersistence>]
     <!--NeedCopy-->
    

示例:

  • 连接代理持久性

     set gslbservicegroup sg1 -sitePersistence connectionProxy
     <!--NeedCopy-->
    
  • HTTP 重定向持久

     set gslb servicegroup sg2 test1 80 -sitePrefix vserver-GSLB-1
    
     set gslb servicegroup sg2 -sitePersistence HTTPRedirect
     <!--NeedCopy-->
    
  1. 导航到 流量管理 > GSLB > 服务组 ,然后选择要为站点持久性配置的服务组(例如 ServiceGroup-GSLB-1)。
  2. 单击“站点持久性”部分,然后设置满足您要求的持久性。

提示

有关 GSLB 服务组的部署方案和示例配置,请参阅以下主题:

配置 GSLB 服务组