Citrix ADC

配置GSLB服务组

服务组使您能够像管理单个服务一样轻松地管理一组服务。例如,如果为服务组启用或禁用某个选项(如压缩、运行状况监视或正常关闭),则会为服务组的所有成员启用或禁用该选项。

创建服务组后,可以将服务组与虚拟服务器绑定,并将业务添加到服务组中。还可以将监视器绑定到服务组。

重要的

如果负载平衡虚拟服务器本身在GSLB节点中,或者在子节点中(在父子部署中),并且没有监视器绑定到GSLB服务,那么请确保以下内容:

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

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

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

基于GSLB域名的自动扩展服务组

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

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

如果需要在引用负载均衡端点时使用域名而不是IP地址,则可以使用基于域名的GSLB服务组。

监控基于GSLB域名的服务组

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

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

触发器监视器选项可用于指示GSLB站点是否必须始终使用监视器,或者在指标交换协议(MEP) DOWN时使用监视器。

默认情况下,触发器监视器选项设置为ALWAYS。

当触发器监视器选项设置为ALWAYS时,每个GSLB节点独立触发监视器。如果每个GSLB节点独立触发监视器,那么每个GSLB节点可能在不同的GSLB服务集上操作。这可能导致登陆这些GSLB节点的DNS请求的DNS响应不一致。此外,如果每个GSLB节点都独立进行监视,则到达负载平衡器实体的监视探测数量会增加。持久性条目在GSLB节点之间也变得不兼容。

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

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

GSLB服务组的限制

  • 对于负载均衡域,DNS响应返回的IP地址一般为公网IP地址。负载均衡域解析时,不能动态应用私有IP地址。因此,基于GSLB域名的自扩展服务组IP端口绑定的公网IP端口和私网IP端口相同。对于基于域名的自动缩放服务组,不能显式设置这些参数。
  • GSLB服务组不支持站点持久化、DNS视图和集群。

通过命令行配置和管理GSLB服务组

添加GSLB服务组。

add gslb serviceGroup @  [-autoScale (DISABLED | DNS)] -siteName  

例子:

添加gslb serviceGroup Service-Group-1 http -siteName Site1 -autoScale DNS 

绑定GSLB服务组和虚拟服务器

bind 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 - 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  | -maxBandwidth  | -monThreshold ] [-healthMonitor (YES | NO)] [-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服务组。

启用gslb serviceGroup @ [@ ] 

例子:

enable gslb serviceGroup SG1 S1 80 

禁用GSLB服务组。

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

例子:

disable gslb serviceGroup SRG2 S1 80 

请注意

必须禁用的服务组必须是DBS服务组,而不是自动伸缩服务组。

删除GSLB服务组。

rm gslb serviceGroup  

例子:

rm gslb serviceGroup service - group1 

查询GSLB服务组统计信息。

stat gslb serviceGroup [] 

例子:

stat gslb serviceGroup Service-Group-1 

查询GSLB服务组属性。

show gslb serviceGroup [ -includeMembers] 

例子:

show gslb serviceGroup show gslb serviceGroup -includeMembers 

修改现有的GSLB CLI命令

引入GSLB服务组后,对现有的GSLB命令进行了以下更改:

  • 绑定GSLB vserver—在bind命令中添加服务组名称。

    例子:

    bind gslb vserver  ((-serviceName  [-weight ]) | @ | | (-domainName  [-TTL ] [-backupIP] [- cookieddomain< string>] [-cookieTimeout ][-sitedomainTTL ]) | (-policyName @ [-priority] [-gotoPriorityExpression ] [-type REQUEST | RESPONSE)])) 
  • 解除绑定GSLB vserver—在unbind命令中添加服务组。

    例子:

    unbind gslb vserver  (-serviceName   @ /(-domainName  [-backupIP] [- cookieddomain]) | -policyName @) 
  • 显示GSLB网站—执行该命令时,同时显示GSLB服务组信息。

  • 显示GSLB vs—执行该命令时,显示GSLB服务组信息。

  • 统计GSLB vs—执行该命令时,同时显示GSLB服务组的统计信息。

  • 显示lb监视器绑定—执行此命令时,还会显示GSLB服务组绑定信息。

通过GUI方式配置GSLB服务组

  1. 导航到交通管理>GSLB>服务团体
  2. 创建服务组,选择“自动缩放方式”为“DNS”。

配置GSLB服务组的站点持久化

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

使用CLI方式设置基于HTTP cookie的站点持久化

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

在命令提示符下,输入:

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

在命令提示符下,输入:

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

例子:

  • 连接代理持久性

    set gslbservicegroup sg1 -sitePersistence connectionProxy 
  • HTTPRedirect持久性

    设置gslb servicegroup sg2 test1 80 -sitePrefix vserver-GSLB-1 
    set gslb servicegroup sg2 -sitePersistence HTTPRedirect 

使用GUI设置基于cookie的站点持久性

  1. 导航到交通管理>GSLB>服务集团并选择要为站点持久化配置的服务组(例如,servicegroup-GSLB-1)。
  2. 单击网站的持久性节并设置满足您需求的持久性。

提示

GSLB服务组的部署场景和配置举例,请参见以下主题:

配置GSLB服务组