neutron-specs/misc/api/load-balancer-as-a-service_...

4.3 KiB

Load-Balancer-as-a-Service (LBaaS)

The LBaaS extension enables OpenStack tenants to load-balance their VM traffic.

The extension enables you to:

  • Load-balance client traffic from one network to application services, such as VMs, on the same or a different network.
  • Load-balance several protocols, such as TCP and HTTP.
  • Monitor the health of application services.
  • Support session persistence.

Concepts

This extension introduces these concepts:

Load balancers

The primary load-balancing configuration object. Specifies the virtual IP address where client traffic is received.

Pools

A logical set of devices, such as web servers, that you group together to receive and process traffic.

The load-balancing algorithm chooses which member of the pool handles new requests or connections that are received on a listener. Each listener has one default pool.

Listener

Represents a single listening port. Defines the protocol and can optionally provide TLS termination.

Members

The application that runs on the back-end server.

Health monitors

Determines whether or not back-end members of the pool can process a request. A pool can have one health monitor associated with it.

The LBaaS extension supports these types of health monitors:

  • PING. Uses ICMP to ping the members.
  • TCP. Uses TCP to connect to the members.
  • HTTP. Sends an HTTP request to the member.
  • HTTPS. Sends a secure HTTP request to the member.
Session persistence

Forces connections or requests in the same session to be processed by the same member as long as it is active.

The LBaaS extension supports these types of persistence:

  • SOURCE_IP. All connections that originate from the same source IP address are handled by the same member of the pool.
  • HTTP_COOKIE. The load-balancing function creates a cookie on the first request from a client. Subsequent requests that contain the same cookie value are handled by the same member of the pool.
  • APP_COOKIE. The load-balancing function relies on a cookie established by the back-end application. All requests with the same cookie value are handled by the same member of the pool.

Absence of session_persistence attribute means no session persistence mechanism is used.

When no session persistence is used, the session_persistence attribute does not appear in the API response and instead returns null.

You can clear session persistence by sending null in session_persistence attribute in a listener update request.

Use the LBaaS extension to configure load balancing

You must complete these high-level tasks:

To use the LBaaS extension to configure load balancing

  1. Create a pool, which is initially empty.
  2. Create one or more members in the pool.
  3. Create a health monitor.
  4. Associate the health monitor with the pool.
  5. Create a load balancer object.
  6. Create a listener.
  7. Associate the listener with the load balancer.
  8. Associate the pool with the listener.
  9. Optional. If you use HTTPS termination, complete these tasks:
    1. Add the TLS certificate, key, and optional chain to Barbican.
    2. Associate the Barbican container with the listener.
  10. Optional. If you use layer-7 HTTP switching, complete these tasks:
    1. Create any additional pools, members, and health monitors that are used as non-default pools.
    2. Create a layer-7 policy that associates the listener with the non-default pool.
    3. Create rules for the layer-7 policy that describe the logic that selects the non-default pool for servicing some requests.

Load balancers

Use the LBaaS extension to create and manage load balancers.

Listeners

Use the LBaaS extension to create and manage load-balancer listeners.

Pools

Use the LBaaS extension to create and manage load-balancer pools.

Members

Use the LBaaS extension to create and manage load-balancer pool members.

Health monitors

Use the LBaaS extension to create and manage load-balancer health monitors.