This topic explains the two modes in detail, and describes how and when to use each mode.
AMKO decides the fully qualified domain name (FQDN) for the GSLB services based on two modes.
Default Mode
Custom Global FQDN Mode
Default Mode
In this mode, the hostnames field in the status of the Ingress/Route/Service of type Loadbalancer object is used to determine the hostname of the GSLB Service. Each hostname uniquely maps to a GS FQDN automatically. For common hostname across clusters, a single GSLB Service is created with pool members from each cluster that share the hostname.
When you have two instances of an application deployed on two different clusters which have the same FQDNs, and you want to expose all these application as GslbServices in one shot, use the Default Mode.
Custom Global FQDN Mode
In this mode, AMKO checks the AKO HostRules to figure out the GslbService FQDN. To expose an application through GSLB, the user must provide a mapping between the local FQDN and the global FQDN through AKO’s HostRule object. If the user wishes to map two application instances (which have different FQDNs) in two different clusters, they have to create HostRules in both clusters specifying the mapping.
Specifying the Custom Global FQDN Mode
Set the useCustomGlobalFqdn field to True
in the GSLBConfig object. This is a static operation and if changed while AMKO is already deployed, the changes won’t take any effect. If useCustomGlobalFqdn was previously set to False
and then changed to True
, and if AMKO is rebooted, the pre-created GslbServices in NSX Advanced Load Balancer will be deleted.
When to Use the Custom Global FQDN Mode
If you have site local FQDNs and you want to use DNS load balancing for these application instances, a common GSLB FQDN can be used. Here, the common GSLB FQDN maps the VIPs of the site local FQDN as pool members.
Grouping Related FQDN and Aliases
The number of GSLB services can be reduced by grouping related (FQDN and its aliases) together into one GSLB Service. The field useCustomGlobalFqdn is set to True
when AMKO is required to create GSLB Services only when global to local FQDN mapping is given. A new field called includeAliases is introduced in the HostRule CRD. A sample configuration of includeAliases is as shown below:
virtualhost: aliases: - alias1.greenapp.avi.internal - alias2.greenapp.avi.internal fqdn: green-secure-app.avi.internal #local-fqdn fqdnType: Exact gslb: fqdn: global-greenapp.avi.internal #global-fqdn includeAliases: false #defaultValue: false
By default, includeAliases is set to false
. In this case, AMKO will create a GSLB Service with name equal global-fqdn. Aliases provided in the hostrule will be ignored.
On setting includeAliases to True
, AMKO creates a GSLB Service with name equal global-fqdn. All the aliases mentioned in the hostrule will be added as Application Names in the GSLB Service.
When useCustomGlobalFqdn is set to False
, AMKO creates a GSLB Service with name equal to the local-fqdn/hostname
of the kubernetes object. All the aliases mentioned in the hostrule will be added as Application Names in the GSLB Service.
Currently when using local to global FQDN mapping (useCustomGlobalFqdn: true
), AMKO creates a GSLB service for ingress/route/service only if there is a HostRule with local to global FQDN mapping.