Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?


Scaling Up Contrail Networking Configuration API Server Instances

Certain deployment scenarios may need running of multiple API configuration server instances for improved performance. One of the methods to achieve this is by increasing the number of API configuration server instances on a node after deploying Contrail Networking. This is done by modifying the docker-compose.yaml file to allow multiple configuration API containers on the same host.

The steps described in this topic are valid for Contrail Networking Releases 5.0 through 2008. For release 2011 and later, refer the topic Scaling Up Contrail Networking Configuration API.


Any change to the Contrail networking Configuration API must be made only with the help of Juniper Networks Professional Services. We strongly recommend that you contact Juniper Networks Professional Services before you make any change to the Configuration API.

  1. Edit the /etc/contrail/config/docker-compose.yaml file on each Contrail Configuration node. At the end of the API section, at line 56, append the following chunk of code:

    Make sure that the API port, Introspect port, Worker ID and container_name are unique within the node. The default API section should not be changed to allow other Contrail services (for example, Schema-transformer, SVC-Monitor or contrail-status command) to run without configuration changes. The default API runs with port 8082, introspect port 8084, worker_id 0 and container name config_api_1.

  2. Run the following commands on each configuration node to apply the changes:
  3. Run the following commands on each configuration node to verify the configuration:

    Sample Output

  4. Add new server instances to load-balancer.

    Sample HAProxy Configuration

  5. Run the following commands to set load-balancer timeouts and balancing method

You cannot configure timeout for the Neutron plugin. Neutron relies on load-balancer to terminate connections. Therefore, it is important that you increase the default timeout value of 30 seconds. This enables Neutron to respond without error even if the Contrail API responds longer than 30 seconds.

Sample timeout options for HAProxy


It is recommended that you use load balancing methods that distributes the load evenly across the configuration API server instances. The preferred lod balancing methods are leastconn and round-robin.


Increasing the number of configuration API server instances might result in higher load on RabbitMQ and Schema-transformer.