配置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-default
和ping-default
。tcp-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服务组
- 导航到流量管理>GSLB>服务组。
- 创建一个服务组并将自动缩放模式设置为dns。
为GSLB服务组配置站点持久性
您可以为基于IP地址地址的服务组和基于域名的服务组配置站点持久性。基于域名的自动扩展服务组不支持站点持久性。
使用CLI设置基于HTTP cookie的网站持久性
对于连接代理持久性,您不必设置站点前缀。
在命令提示符下,键入:
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
使用GUI设置基于cookie的网站持久性
- 导航到流量管理>GSLB>服务组,然后选择要为站点持久性配置的服务组(例如ServiceGroup-GSLB-1)。
- 单击”站点持久性部分,然后设置满足您要求的持久性。
提示
有关GSLB服务组的部署方案和示例配置,请参阅以下主题: