Learn, step by step, how to add a node to your Promote cluster if you want to run on more than three nodes.
To add or remove nodes, you should be an advanced user. If this is the first time you add or remove nodes, we recommend that you make an appointment with an Alteryx Customer Support Engineer who guides you through the process.
Before you add a node to your Promote cluster, make sure you have a couple things:
- You must have SSH access to every node in your Promote cluster.
- Your cluster must currently run on at least version 2019.1.x of Promote.
Navigate to the node_maintenance_2020.4.0 directory on your local machine, which is a folder located within the original downloaded and extracted archive you've used to install or upgrade Promote.
Open the add_node.sh script with a text editor, such as vi (if you're unfamiliar with text editors, visit this vi tutorial):
After you open the file, you should see this:
Bash #!/bin/bash set -uea # see README.md for more information # List ALL your existing nodes IPs in bash array format here (not including the node you are adding): # Ensure both sets of IPs are in the same relative order EXISTING_NODES_IPS=('' '' '') # Internal IPS EXISTING_NODES_INT_IPS=('' '' '') # Add the node you would like to add to your cluster here: NEW_NODE_IP='' NEW_NODE_INT_IP='' # Add your Promote credentials here: QUAY_PROMOTE_USERNAME='' QUAY_PROMOTE_PW='' # Add your ssh user and key path here: SSH_USER='' KEY_PATH=''
Within each set of single quotation marks, use vi to insert this information:
- External IP addresses of the nodes that are already a part of your Promote cluster
- Internal IP addresses of the nodes that are already a part of your Promote cluster
- External IP address of the node you want to add to your Promote cluster
- Internal IP address of the node you want to add to your Promote cluster
- QUAY credentials, provided by your account executive or Alteryx Fulfillment
- SSH user and key
After you update the empty fields with needed information, the file should look like this:
Bash #!/bin/bash set -uea # see README.md for more information # List ALL your existing nodes' IPs in bash array format here (not including the node you are adding): # Ensure both sets of IPs are in the same relative order EXISTING_NODES_IPS=('NODE1_EXTERNAL_IP' 'NODE2_EXTERNAL_IP' 'NODE3_EXTERNAL_IP') # Internal IPS EXISTING_NODES_INT_IPS=('NODE1_INTERNAL_IP' 'NODE2_INTERNAL_IP' 'NODE3_INTERNAL_IP') # Add the node you would like to add to your cluster here: NEW_NODE_IP='NEWNODE_EXTERNAL_IP' NEW_NODE_INT_IP='NEWNODE_INTERNAL_IP' # Add your Promote credentials here: QUAY_PROMOTE_USERNAME='QUAY_USERNAME' QUAY_PROMOTE_PW='QUAY_PASSWORD' # Add your ssh user and key path here: SSH_USER='SSH_USERNAME' KEY_PATH='PATH/TO/SSH/KEY'
Write your changes to the add-node file and then exit the text editor.
Run the add_node.sh script:
If this is the first time you've added a node to the swarm, answer y to all prompts.
The script automatically runs preflight checks on all your machines to make sure that you've satisfied these requirements:
- You have SSH access to all nodes, including your new node.
- Promote's zipped .tar file is available in your working directory, promote-el7-2020.4.0.tar.gz.
After the preflight checks finish, the script prompts you to install Docker. Answer
y if you do not already have docker-ce-18.09.0 installed and an updated daemon.json file created on your new node.
After you've installed Docker on your new machine, the script prompts you to add the node to your swarm. Answer
The script now completes several tasks automatically:
- It copies and unzips the promote-el7-2020.4.0.tar.gz file onto your new node, supplying the node with the Promote overlay files.
- It moves TLS certificates to the new node. The script will first check for a local ./certs directory with certificates, otherwise if will copy down and utilize the existing certificates on the Master node.
- It creates your quay_creds.env file using the QUAY_PROMOTE_USERNAME and QUAY_PROMOTE_PW you've provided. This logs you in to Quay.io, allowing you to pull down Promote images from there.
- It runs final checks to make sure that you successfully added the new node to the Promote cluster. If the script detects any issues, it gives you the option to roll back your changes and remove the new node from the cluster.
All global services (including NGINX, Logstash, Logspout, Registrator, Telegraf, and docker-events-mon) automatically rebalance and create replicas on your new node. But existing models do not redistribute their replicas to the new node until you restart them, redeploy them, or modify their replica count via the UI.
You successfully added a new node to your Promote cluster. It is now able to host models and return predictions.