Adding an IBM Cloud Private cluster node

Add worker, proxy, management, vulnerability advisor, and custom host group nodes to your IBM® Cloud Private cluster.

Preparing the new node for installation

Complete the following steps on the new node:

  1. Ensure that all default ports are open but are not in use. No firewall rules must block these ports. During installation the installer also confirms that these ports are open. For more information about the IBM Cloud Private default ports, see Default ports.

    To manually check whether a port is open and available, you can run one of the following two commands, where port_numbers represent the TCP/UDP port or ports to check:

    • Run the ss command:

       ss -tnlp | awk '{print $4}'| egrep -w "<port_numbers>"
      

      If the port is not in use, the output is empty. If the port is in use, the output displays as it does in the following example:

       # ss -tnlp | awk '{print $4}' | egrep -w "8001|8500|3306"
       :::8001
       :::3306
       :::8500
      
    • Or, if you installed network utilities, run the netstat command:

       netstat -tnlp | awk '{print $4}' | egrep -w "<port_numbers>"
      

      If the port is in use, the output displays as it does in the following example:

       # netstat -tnlp | awk '{print $4}' | egrep -w "8001|8500|3306"
       :::8001
       :::3306
       :::8500
      

      Port numbers must be separated with the | character. See the following example:

      netstat -tnlp | awk '{print $4}'| egrep -w 8101|8500|3306|
      
  2. Configure the DNS utilities to make sure the hostname and fully qualified domain name (FQDN) of the newly added node are resolvable within the cluster.

  3. Ensure network connectivity between the new node and all other nodes in your cluster.
  4. Synchronize the clock on the new node to the rest of the cluster nodes. To synchronize your clocks, you can use network time protocol (NTP). For more information about setting up NTP, see the user documentation for your operating system.
  5. On the new node, confirm that a supported version of Python is installed. Python versions 2.6 to 2.9.x are supported.

      python --version
    
  6. Ensure that an SSH client is installed on the new node.

  7. If you use SSH public key authentication to create the secure connection between your cluster nodes, add the SSH public key to the new node. From the boot node, add the SSH public key to the node by running the following command:

       ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<node_ip_address>
    

    Where <user> is the user name for the node, and <node_ip_address> is the IP address of that node.

  8. If you manually install Docker on your non-boot nodes, install Docker on the new node. See Installing Docker on IBM Cloud Private.

Adding nodes

Complete the following steps from the boot node that was used to install your cluster.

  1. Change to the cluster directory within your IBM Cloud Private installation directory.

    cd /<installation_directory>/cluster
    
  2. Ensure that the installer for the platform that the new node runs on, is available in your /<installation_directory>/cluster/images directory.

    • For a Linux® x86_64 node, you need the ibm-cloud-private-x86_64-3.1.1.tar.gz or ibm-cp-app-mod-x86_64-3.1.1.tar.gz file.
    • For a Linux® on Power® (ppc64le) node, you need the ibm-cloud-private-ppc64le-3.1.1.tar.gz or ibm-cp-app-mod-ppc64le-3.1.1.tar.gz or file.
    • For a IBM® Z worker node, you need the ibm-cloud-private-s390x-3.1.1.tar.gz file.
  3. Add the new node.

Adding a worker node

Note: To add a IBM® Z node to your cluster, add the IP address for the Z worker node to the /<installation_directory>/hosts file.

To add a worker node, run the following command:

  docker run -e LICENSE=accept --net=host \
  -v "$(pwd)":/installer/cluster \
  ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.1.1-ee worker -l \
  ip_address_workernode1,ip_address_workernode2

In this command, ip_address_workernode1 and ip_address_workernode2 are IP addresses of new worker nodes. When you run this command, the IP addresses that you specify are added to the hosts file.

Adding a management node

To add a management node, run the following command:

  docker run -e LICENSE=accept --net=host \
  -v "$(pwd)":/installer/cluster \
  ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.1.1-ee management -l \
  ip_address_managementnode1,ip_address_managementnode2

In this command, ip_address_managementnode1 and ip_address_managementnode2 are IP addresses of new management nodes. When you run this command, the IP addresses that you specify are added to the hosts file.

Adding a proxy node

This procedure is supported in proxy HA environments only.

To add a proxy node, run the following command:

  docker run -e LICENSE=accept --net=host \
  -v "$(pwd)":/installer/cluster \
  ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.1.1-ee proxy -l \
  ip_address_proxynode1,ip_address_proxynode2

In this command, ip_address_proxynode1 and ip_address_proxynode2 are IP addresses of new proxy nodes. When you run this command, the IP addresses that you specify are added to the hosts file.

Adding a vulnerability advisor node

To add a VA node, run the following command:

  docker run --rm -t -e LICENSE=accept --net=host -v \
  $(pwd):/installer/cluster ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.1.1-ee va -l \
  ip_address_vanode1,ip_address_vanode2

In this command, ip_address_vanode1 and ip_address_vanode2 are IP addresses of new VA nodes. When you run this command, the IP addresses that you specify are added to the hosts file.

Note: The Vulnerability Advisor service is not enabled on the node after you add it to your cluster. For more information, see Enabling and disabling IBM Cloud Private management services.

Adding a host group

Host group nodes are worker nodes.

  1. Ensure that the host group is defined in the host file. See Setting the node roles in the hosts file.

  2. Add the host group.

    • To set up a host group, run the following command:

      docker run -e LICENSE=accept --net=host \
      -v "$(pwd)":/installer/cluster \
      ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.1.1-ee hostgroup -l [hostgroup-name]
      

      Note: If you want to install multiple host groups in a single command, omit the -l option.

    • To add a specific host to a host group, run the following command:

      docker run -e LICENSE=accept --net=host \
      -v "$(pwd)":/installer/cluster \
      ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.1.1-ee hostgroup -l \
      ip_address_hostgroupnode1,ip_address_hostgroupnode2
      

      In this command, ip_address_hostgroupnode1 and ip_address_hostgroupnode2 are IP addresses of the new host group nodes.