NSX Advanced Load Balancer supports the sharing of pool groups across multiple virtual services. The feature supports use cases wherein the same back-end servers are being used by different virtual services, each virtual service having its purpose and properties.
A Pool Group is a list of member (server) pools, combined with logic to select a member from the list. Like a pool, a pool group can be shared by the same type of Layer 7 virtual service. This article explains the feature’s capabilities, the related CLI commands, and the present limitations.
Pool Group Sharing
A virtual service might refer to a given pool group through multiple techniques:
As the default pool group defined for a virtual service.
Through policy-based content-switching, a virtual service might choose one of its pool groups
Via DataScript, a virtual service might programmatically choose one of its pool groups
A pool group can be referenced by multiple virtual services. In accessing the shared pool group, each virtual service can independently use any one of the multiple techniques listed above. As before, a virtual service may access multiple pools, some of them shared and others not. Virtual services sharing a pool group need not be placed on the same SE group.
This feature is supported for combinations of IPv4, IPv6, and IPv4v6 addresses.
Restrictions
These are some restrictions when sharing a pool group:
Only similar virtual services can share a pool group
Layer 4 virtual service cannot share a pool group as yet.
A pool can be part of multiple pool groups either through the same virtual service or different virtual services.
If pool or pool group is selected using a service_port_selector, then it can’t be shared.
Pool groups cannot contain pool groups.
A pool directly linked to a virtual service must not be part of a pool group.
Some of these restrictions may be removed in future releases.