Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Adding a New Node to an Existing Containerized Contrail Cluster

This is the initial process for adding a new node to an existing cluster in containerized Contrail.

Controller Configuration

  1. Create contrailctl configuration and start a controller container on a new node.

  2. Configure the existing cluster nodes with new nodes.

    The purpose of this step is to reconfigure the existing cluster application configurations to include newly added servers, then restart to accommodate the configuration changes.

You can do this by using one of two methods described below:

Using contrailctl to add node configuration on existing containers

You can use contrailctl to add the node configuration on existing containers by running the following steps on all existing containers on all cluster nodes.

Note:

Run this step first on all zookeeper follower nodes, then run on the leader node.

  1. Determine which node is the leader node.

    To determine which node is the leader and which are followers in a zookeeper cluster, run the following commands against your zookeeper cluster nodes.

    $ echo stat | nc 192.168.0.102 2181 | grep Mode Mode: leader

    $ echo stat | nc 192.168.0.100 2181 | grep Mode Mode: follower

  2. Run contrailctl on all the existing containers in all cluster nodes, follower nodes first and leader node last.

Manually configure contrailctl on all containers and sync the configs

  1. Determine which node is the leader node.

    To determine which node is the leader and which are followers in a zookeeper cluster, run the following commands against your zookeeper cluster nodes.

    $ echo stat | nc 192.168.0.102 2181 | grep Mode Mode: leader

    $ echo stat | nc 192.168.0.100 2181 | grep Mode Mode: follower

  2. Manually configure /etc/contrailctl/controller.conf with new nodes for various *._list configurations and config_seed_list. See examples at: https://github.com/Juniper/contrail-docker/blob/master/tools/python-contrailctl/examples/configs/controller.conf

  3. Run contrailctl within the containers.

    $ docker exec <container name> contrailctl config sync -c <component name>

    $ docker exec controller contrailctl config sync -c controller

Removing Nodes in an Existing Containerized Cluster

For the first version of containerized Contrail, there is no script available for removing a node from an existing cluster. If it is necessary to remove a node from an existing containerized Contrail cluster, please contact Juniper Networks JTAC for assistance.