The Public Cloud Load Balancer (based on the Octavia OpenStack project) provides a lot of features and its configuration can be complex. The goal of this page is to explain the different configuration concepts that are powering the Load Balancer so that you have a high-level understanding of all the features and the associated configuration items.
Load Balancer Configuration concepts
Here are two drawings of two configurations: a simple one that contains the minimum number of concepts to configure a Load Balancer and a more complex one that uses them all. The following chapters provide a definition of each concept used in those configurations.
Listener
The listener specifies a listening endpoint where the incoming traffic is received. Its main attributes are the protocol and the port, for instance, HTTPS
and 443
. Note that you can have multiple listeners on one Load Balancer.
Pool
A pool specifies a group of members to which the listener forwards client requests. A pool is associated to one listener. For complex configuration using L7 Policies, a listener can be associated to multiple pools. The main pool attributes are the load balancing algorithm (e.g. Round Robin
) and the protocol that is used to query the members, e.g. HTTPS
.
Member
A member represents the configuration for a target back-end server to which the traffic is sent. Its main attributes are its IP (e.g. 192.168.1.10
) and a port (e.g. 443
). A member is part of a pool.
Health Monitor
The health monitor defines how the load balancer will check the health of the pool members. Its main attributes are the check method (e.g. PING
) with various delays and timeouts. It is associated with exactly one pool.
L7 rule
An L7 rule is a single logical expression that is used to match a condition present in a given HTTP or terminated HTTPS request. L7 rules typically match against a specific header or part of the URI. An L7 rule is associated with exactly one L7 policy.
For example, an L7 rule can evaluate if a URI begins with “/api”.
L7 policy
An L7 policy associates one or many L7 rules to a listener. Its main attribute is the action that is performed if all the L7 rules evaluation returns true
. For example, a user could specify an L7 policy so that any client request that matches the L7 rule “request URI starts with ‘/api’” should get routed to a specific “api” pool.
When a request is received on a listener, the L7 policies are evaluated in the order defined by the position
attribute. If the evaluation returns true
then the evaluation stops and the L7 policy action is executed. If all L7 policies return false
then the request is forwarded to the listener default pool.
Go Further
- An exhaustive technical documentation on the OpenStack project page.
- Configure your first load balancer with this guide.
For more information and tutorials, please see our other Public Cloud Networking support guides or explore the guides for other OVHcloud products and services.