Cloud Docs Home > F5 OpenStack LBaaSv2 Index

Multiple Agents and Differentiated Service Environments

Overview

You can run multiple F5® agents on separate hosts in OpenStack to provide agent redundancy and scale out. Additionally, you can set up custom service environments in your OpenStack cloud to manage environments with different requirements and/or configurations.

Use Case

In a typical multi-agent deployment, agents running on the same Neutron controller must be managing different BIG-IPs. In this case, when you request a new load balancer, you can not designate the BIG-IP on which the requested object will be created.

If you want to create LBaaS objects on specific BIG-IP(s) when using a multi-agent deployment, you’ll need to run the agents in a custom service environment.

Prerequisites

Caveats

None.

Configuration

  1. Generate a new custom environment on the Neutron controller.

    $ sudo add_f5agent_environment <env_name>
    

    The environment name is limited to 8 characters in length.

  2. Configure the F5 agents.

    • Each agent must be configured with the same iControl® endpoint(s).
    • Each agent must be configured with the same environment_prefix; this is the name you assigned to the new custom environment.
    • Each agent must run on a separate host (in other words, the hostname must be unique).
  3. Copy the Neutron and Neutron LBaaS configuration files from the Neutron controller to each host on which an agent is configured.

    $ sudo cp /etc/neutron/neutron.conf <openstack_host>:/etc/neutron/neutron.conf
    $ sudo cp /etc/neutron/neutron_lbaas.conf <openstack_host>:/etc/neutron/neutron_lbaas.conf
    
  4. Restart Neutron.

  5. Start the F5 agent on each host.

Usage

When you create a new load balancer, you must specific the service provider driver to use; this is how F5 LBaaSv2 determines which queue should receive the task. The F5 LBaaSv2 driver responsible for that queue then assigns the task to an agent as described in Agent Redundancy and Scale Out.

Example:

(neutron) lbaas-loadbalancer-create --name lb_dev1 --provider dev1 b3fa44a0-3187-4a49-853a-24819bc24d3e
Created a new loadbalancer:
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| admin_state_up      | True                                 |
| description         |                                      |
| id                  | fcd874ce-6dad-4aef-9e69-98d1590738cd |
| listeners           |                                      |
| name                | lb_dev1                              |
| operating_status    | OFFLINE                              |
| provider            | dev1                                 |
| provisioning_status | PENDING_CREATE                       |
| tenant_id           | 1b2b505dafbc487fb805c6c9de9459a7     |
| vip_address         | 10.1.2.7                             |
| vip_port_id         | 079eb9e5-dc63-4dbf-bc15-f38f5fdeee92 |
| vip_subnet_id       | b3fa44a0-3187-4a49-853a-24819bc24d3e |
+---------------------+--------------------------------------+