Controller Cluster IP

Overview

The Avi Controller cluster IP address is a single IP address shared by multiple Avi Controllers within a cluster. This is the address to which the web interface, CLI commands and REST API calls are directed. As a best practice, to access the Avi Controller, one logs onto the cluster IP address instead of the IP addresses of individual Avi Controller nodes.

For cluster IPs, the management IPs of the Controllers must all be in the same subnet.

Note: For AWS deployments where Controllers are on different subnets, you have the option to use Route 53 with health checks to resolve the domain name of the Cluster to a Controller IP address directly. For complete information on cluster configuration in AWS, refer to Avi Controller Cluster Configuration in AWS.

Cluster IP Advertisement

The Avi Controller cluster IP is ARPed by whichever Avi Controller is the primary (or leader, depending on the infrastructure type) within the cluster. When another Avi Controller becomes the primary, it will send out a gratuitous ARP to claim ownership of the cluster IP.

Administrators may manage any of the Avi Controllers within the cluster by directly accessing the cluster IP address. The Avi Controllers will handle all replication, so there is no requirement to make changes specifically on the primary Avi Controller.

Note: In Avi Vantage, the cluster IP is not referred to as floating IP. In Avi Vantage, the term floating IP applies only to OpenStack.

OpenStack Controller Cluster

There are 2 ways to configure OpenStack Controller cluster.

Method 1

The following are the steps to configure OpenStack Controller cluster:

  1. Spin up three or more Avi Controllers on OpenStack.
  2. Consider one Controller for cloud/cluster configuration. If Controller is not reachable from outside OpenStack, then assign Floating IP to Controller IP. You can access the controller using Floating IP and configure Cluster VIP on the Controller.

    
     avi-dev-venv) ~ $> neutron floatingip-create public
     Created a new floatingip:
     +---------------------+--------------------------------------+
     | Field               | Value                                |
     +---------------------+--------------------------------------+
     | description         |                                      |
     | fixed_ip_address    |                                      |
     | floating_ip_address | 10.176.2.102                         |
     | floating_network_id | d11a54be-2de8-46be-a847-9402d3e2ea35 |
     | id                  | 55cbe4ce-97d4-44fc-ad38-78faf0cbe2d7 |
     | port_id             |                                      |
     | router_id           |                                      |
     | status              | DOWN                                 |
     | tenant_id           | 037e661ac0cb44c89449e5e9b76b9a00     |
     +---------------------+--------------------------------------+
        
     (avi-dev-venv) ~ $> neutron floatingip-associate 55cbe4ce-97d4-44fc-ad38-78faf0cbe2d7 2aecadeb-755a-495e-8f19-53301ee63d6b
     Associated floating IP 55cbe4ce-97d4-44fc-ad38-78faf0cbe2d7
     
  3. Configure the cloud, wait for it be become green.
  4. Create a port in OpenStack for cluster VIP. This should be in the Avi management network.

    
     avi-dev-venv) ~ $> neutron port-show cvip1
     +-----------------------+-----------------------------------------------------------------------------------+
     | Field                 | Value                                                                             |
     +-----------------------+-----------------------------------------------------------------------------------+
     | admin_state_up        | True                                                                              |
     | allowed_address_pairs | {"ip_address": "172.16.0.3", "mac_address": ""}                                   |
     | binding:host_id       |                                                                                   |
     | binding:vif_details   | {"port_filter": true}                                                             |
     | binding:vif_type      | vrouter                                                                           |
     | binding:vnic_type     | normal                                                                            |
     | description           |                                                                                   |
     | device_id             |                                                                                   |
     | device_owner          |                                                                                   |
     | fixed_ips             | {"subnet_id": "4982c62d-ada2-4067-879a-1c5b1ec94ec8", "ip_address": "172.16.0.3"} |
     | id                    | 1fed2319-a179-4dc5-b9e5-49853606e7a8                                              |
     | mac_address           | 02:1f:ed:23:19:a1                                                                 |
     | name                  | cvip1                                                                             |
     | network_id            | 9feb21ba-6c14-44a3-a478-1f09e16b60df                                              |
     | port_security_enabled | True                                                                              |
     | security_groups       | 367987f6-f373-4637-8867-aa5b31dc60d2                                              |
     | status                | DOWN                                                                              |
     | tenant_id             | 037e661ac0cb44c89449e5e9b76b9a00                                                  |
     +-----------------------+-----------------------------------------------------------------------------------+
     
  5. Assign Floating IP to cluster VIP if needed. (If Avi management network is reachable from outside, Floating IP is not required)

    
     (avi-dev-venv) ~ $> neutron floatingip-create public
     Created a new floatingip:
     +---------------------+--------------------------------------+
     | Field               | Value                                |
     +---------------------+--------------------------------------+
     | description         |                                      |
     | fixed_ip_address    |                                      |
     | floating_ip_address | 10.176.2.104                         |
     | floating_network_id | d11a54be-2de8-46be-a847-9402d3e2ea35 |
     | id                  | e5838127-f2f4-47d6-aaba-d5925d082514 |
     | port_id             |                                      |
     | router_id           |                                      |
     | status              | DOWN                                 |
     | tenant_id           | 037e661ac0cb44c89449e5e9b76b9a00     |
     +---------------------+--------------------------------------+
        
     (avi-dev-venv) ~ $> neutron floatingip-associate e5838127-f2f4-47d6-aaba-d5925d082514 1fed2319-a179-4dc5-b9e5-49853606e7a8
     Associated floating IP e5838127-f2f4-47d6-aaba-d5925d082514
        
     (avi-dev-venv) ~ $> neutron floatingip-list
     +--------------------------------------+------------------+---------------------+--------------------------------------+
     | id                                   | fixed_ip_address | floating_ip_address | port_id                              |
     +--------------------------------------+------------------+---------------------+--------------------------------------+
     | 55cbe4ce-97d4-44fc-ad38-78faf0cbe2d7 | 172.16.0.2       | 10.176.2.102        | 2aecadeb-755a-495e-8f19-53301ee63d6b |
     | e5838127-f2f4-47d6-aaba-d5925d082514 | 172.16.0.3       | 10.176.2.104        | 1fed2319-a179-4dc5-b9e5-49853606e7a8 |
     +--------------------------------------+------------------+---------------------+--------------------------------------+
     
  6. Configure cluster VIP in Avi Controller.
  7. Use the cluster VIP or the cluster Floating IP to log into Avi Controller.
  8. Disassociate the Floating IP from Controller IP. This is optional step. (Since it is done in Step 2).
  9. Add the other Controllers in the Cluster Configuration page.

Method 2

  1. Spin up only one Controller.
  2. Follow steps from 2 to 8 mentioned in the method 1.
  3. Bring other set of Avi Controller nodes.
  4. Add the Controller nodes in cluster configuration.

Configuring the Cluster IP

Use Interface

To add the cluster IP within the Avi user interface, navigate to Administration > Controller > Edit.

cluster-config-example

You can specify the following details:

Cluster Information

  • Name — Specify the name of the cluster.

  • Controller Cluster IP — Specify the new address.

Cluster Nodes

  • Hostname/IP — Specify the host name assigned to this Controller VM.

  • Name — Specify the name of the host.

  • Password — Specify the password to be used while authenticating with this node (Not persisted).

  • Public IP — Specify the public IP address or hostname of the controller VM. This field must be configured when the Service Engines (SEs) are unable to communicate with the Controller private IP address directly, for example, when the SEs are deployed in a remote environment and must access the Controller over the public internet through a destination NAT. If SEs can directly communicate with the Controller Private IP, then the Public IP field need not be configured.

After specifying the necessary details, click on Save button.

Note: As of Avi Vantage 16.3, DNS host names may be specified in lieu of IP addresses as explained in Cluster Configuration with DNS Hostnames.

Additional Information