Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

header-navigation
keyboard_arrow_up
Expand All close
Expand All close
list Table of Contents
file_download PDF
{ "lCode": "en_US", "lName": "English", "folder": "en_US" }
English
 

Adding a New Compute Node to Existing Containerized Contrail Cluster

Release: Contrail Networking 5.1
{}
Change Release
date_range 10-May-19

This is initial process for adding a new compute node to existing Contrail OpenStack cluster.

Assume Contrail cluster is successfully provisioned by the following instances.yaml file.

content_copy zoom_out_map
provider_config:                                                                                
  bms:
    ssh_pwd: c0ntrail123
    ssh_user: root
    ntpserver: x.x.x.x
    domainsuffix: local
instances:
  srvr1:
    provider: bms
    ip: 192.168.1.51
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      openstack:
  srvr2:
    provider: bms
    ip: 192.168.1.52
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      openstack:
  srvr3:
    provider: bms
    ip: 192.168.1.53
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      openstack:
  srvr4:                                                       
    provider: bms
    ip: 192.168.1.54
    roles:
      vrouter:
      openstack_compute:
contrail_configuration:
  CONTRAIL_VERSION: 5.1.0-0.40-ocata
  CONTROL_DATA_NET_LIST: 192.168.10.0/24
  RABBITMQ_NODE_PORT: 5673
  VROUTER_GATEWAY: 192.168.10.1
  IPFABRIC_SERVICE_HOST: 192.168.10.150
  KEYSTONE_AUTH_URL_VERSION: /v3
kolla_config:
  kolla_globals:
    kolla_internal_vip_address: 192.168.10.150
    kolla_external_vip_address: 192.168.1.150

Run the following commands to add a new compute node to an existing Contrail OpenStack cluster.

  1. Edit the instances.yaml file to add a compute node, srvr5.
    content_copy zoom_out_map
    provider_config:                                                                                 
      bms:
        ssh_pwd: c0ntrail123
        ssh_user: root
        ntpserver: x.x.x.x
        domainsuffix: local
    instances:
      srvr1:
        provider: bms
        ip: 192.168.1.51
        roles:
          config_database:
          config:
          control:
          analytics_database:
          analytics:
          webui:
          openstack:
      srvr2:
        provider: bms
        ip: 192.168.1.52
        roles:
          config_database:
          config:
          control:
          analytics_database:
          analytics:
          webui:
          openstack:
      srvr3:
        provider: bms
        ip: 192.168.1.53
        roles:
          config_database:
          config:
          control:
          analytics_database:
          analytics:
          webui:
          openstack:
      srvr4:                                                       
        provider: bms
        ip: 192.168.1.54
        roles:
          vrouter:
          openstack_compute:
      srvr5:                                                       
        provider: bms
        ip: 192.168.1.55
        roles:
          vrouter:
          openstack_compute:
    
    contrail_configuration:
      CONTRAIL_VERSION: 5.1.0-0.38-ocata
      CONTROL_DATA_NET_LIST: 192.168.10.0/24
      RABBITMQ_NODE_PORT: 5673
      VROUTER_GATEWAY: 192.168.10.1
      IPFABRIC_SERVICE_HOST: 192.168.10.150
      KEYSTONE_AUTH_URL_VERSION: /v3
    kolla_config:
      kolla_globals:
        kolla_internal_vip_address: 192.168.10.150
        kolla_external_vip_address: 192.168.1.150
  2. Run the configure_instances.yml playbook with the new instances.yaml file.
    ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/configure_instances.yml

    It will install the required software and also, prepare the new node for running the relevant containers.

  3. Run playbooks.
    ansible-playbook -i inventory/ -e orchestrator=openstack --tags nova playbooks/install_openstack.yml
    ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/install_contrail.yml
    Note

    The --tags nova option runs only the nova role so that the other containers are not affected.

    It is not recommended to omit the above option. If the option is omitted, especially when multiple OpenStack nodes are running with HA, the MariaDB Galera cluster will go out of sync and will not converge. In such situation, the only solution is to re-provision the entire OpenStack cluster.

You can also add or remove a compute node to existing Contrail cluster using Contrail Command UI. For details, refer to Adding a New Compute Node to Existing Containerized Contrail Cluster Using Contrail Command.

footer-navigation