Citrix ADC

配置GSLB服务组

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

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

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

重要

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

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

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

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

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

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

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

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

监控基于GSLB域名的服务组

Citrix ADC设备有两个内置监视器,用于监视基于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 @  [-autoScale (DISABLED | DNS)] -siteName  

示例:

add gslb serviceGroup Service-Group-1 http -autoScale DNS -siteName Site1 

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

绑定gslb serviceGroup  ((@ <端口>)| @ | (-monitorName @)) 

示例:

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 

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

unbind gslb serviceGroup  ((@ <端口>)| @ | -monitorName @) 

示例:

unbind gslb serviceGroup Service-Group-1 -monitorName Mon1 

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

set gslb serviceGroup @ [(@  [-weight ] [-hashId ] [-publicIP ] [-publicPort ]) | -maxClient  | -cip (ENABLED | DISABLED) |  | -cltTimeout  | -svrTimeout  | -maxBandwidth  | -monThreshold  -weight ] [-healthMonitor (YES | NO)] [-comment] [-comment] [-appflowLog (ENABLED | DISABLED)] 

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

unset gslb serviceGroup @ [@  [-weight] [-hashId] [-publicIP] [-publicPort]] [-maxClient] [-cip] [-cltTimeout] [-svrTimeout] [-maxBandwidth] [-monThreshold] [-appflowLog] [-monitorName] [-weight] [-healthMonitor] [-cipHeader] [-downStateFlush] [-comment] 

启用GSLB服务组

enable gslb serviceGroup @ [@ ] 

示例:

enable gslb serviceGroup SG1 S1 80 

禁用GSLB服务组

禁用gslb serviceGroup @ [@ ] [-delay ] [-graceFul (YES /| NO)] 

示例:

禁用gslb serviceGroup SRG2 S1 80 

注意:

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

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

rm gslb serviceGroup  

示例:

rm gslb serviceGroup Service-Group-1 

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

stat gslb serviceGroup [] 

示例:

stat gslb serviceGroup Service-Group-1 

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

show gslb serviceGroup [ -includeMembers] 

示例:

show gslb serviceGroup -includeMembers 

启用或禁用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 @ [@ ] 

注意:

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

示例:

启用gslb serviceGroup http_svc_group 10.102.27.153 80 

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

禁用gslb serviceGroup @ [@ ] 

示例:

禁用gslb服务组http_svc_group 10.102.27.153 80 

注意:

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

对现有GSLB cli命令的更改

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

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

    示例:

    绑定gslb vserver  ((-serviceName  [-weight ]) | @ | | (-domainName  [-TTL ] [-backupIP] [-cookieDomain ] [-cookieTimeout ][-sitedomainTTL ]) | (-policyName @ [-priority] [-gotoPriorityExpression ] [-type REQUEST | RESPONSE)]) 
  • 解绑定GSLB vserver-服务组已添加到解绑定命令中。

    示例:

    unbind gslb vserver  (-serviceName   @ /(-domainName  [-backupIP] [- cookidomain]) | -policyName @) 
  • 显示GSLB站点-运行此命令时,还会显示GSLB服务组。

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

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

  • 显示lb监视器绑定-运行此命令时,还会显示GSLB服务组绑定。

使用GUI配置GSLB服务组

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

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

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

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

    在命令提示符下,键入:

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

    在命令提示符下,键入:

    set gslb servicegroup  < servicegroup成员名|Ip> <端口> [-sitePrefix ] set gslb servicegroup  [-sitePersistence ] 

示例:

  • 连接代理持久性

    set gslbservicegroup sg1 -sitePersistence connectionProxy 
  • HTTP重定向持久

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

提示

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

配置GSLB服务组