Upgrade from 2018.2
Follow these instructions to upgrade from 2018.2 to 2018.3.1.
You have to run the Promote upgrade script from a machine with SSH access to your Promote cluster.
System Requirements
Make sure these ports are open between nodes in your Promote cluster:
5002
5400
Pre-Upgrade Checks
Make sure you walk through each of these steps before you run the 2018.1 upgrade script:
1. Update your R models to use jsonlite, instead of rjson.
The default JSON parser for R models has changed from rjson to jsonlite, which has slight parsing variations. If you think this may interfere with any of your R models, we recommend either of these options:
Modify and redeploy your model to Promote.
Create an environmental variable called JSONLITE
in the model. Assign to it the value FALSE
. THIS causes the model to revert back to rjson as its default parser. Follow these steps to modify a model you've deployed:
- Select the model inside the Promote UI.
- Select Advanced.
- Click the blue + under Environmental Variables.
- Enter the name
JSONLITE
and the valueFALSE
.
2. Make sure you have the correct version of pip installed on your nodes.
In previous versions, Promote Python containers automatically installed the latest version of pip. Now you must match your Promote version with the version of pip available at that time, which was version 9.0.1. For more information, reference the pip release notes.
3. Update Promote's base image for Python to yhat/promote-python:2018.3.1.
Under the Admin tab in the Promote UI, navigate to the Advanced settings. There, input yhat/promote-python:2018.3.1
in the appropriate field to upgrade the Python base image.
Wait for the base image to upgrade. (Normally you see a status bar for the upgrade, but in some cases, you may see only a circular loading indicator. In that case, wait five minutes and then refresh the page. You should see that you successfully updated the base image.)
4. Update Promote's base image for R to yhat/promote-r:2018.3.1.
Under the Admin tab in the Promote UI, navigate to the Advanced settings. There, input yhat/promote-r:2018.3.1
in the appropriate field to upgrade the R base image.
Wait for the base image to upgrade. (Normally you see a status bar for the upgrade, but in some cases, you may see only a circular loading indicator. In that case, wait five minutes and then refresh the page. You should see that you successfully updated the base image.)
After you upgrade, prediction requests that encounter errors other than timeout errors will return 400
response codes with ERROR
statuses, rather than 200
response codes.
Upgrade Instructions
Open the upgrade script with a text editor (such as vi):
vi PATH/TO/upgrade_to_2018.3.1.sh
After you open the file, it should look like this:
NODE_1_IP=''
NODE_2_IP=''
NODE_3_IP=''
NODE_1_INT_IP=''
NODE_2_INT_IP=''
NODE_3_INT_IP=''
SSH_USER=''
KEY_PATH='' # Path on local machine
Within each set of single quotation marks, use vi to insert this information (we recommend this vi tutorial if you are unfamiliar with text editors):
- 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
- SSH user and key file
When you finish updating the empty fields with needed information, the file should look like this:
NODE_1_IP='NODE1_EXTERNAL_IP'
NODE_2_IP='NODE2_EXTERNAL_IP'
NODE_3_IP='NODE3_EXTERNAL_IP'
NODE_1_INT_IP='NODE1_INTERNAL_IP'
NODE_2_INT_IP='NODE2_INTERNAL_IP'
NODE_3_INT_IP='NODE3_INTERNAL_IP'
SSH_USER='USERNAME_FOR_SSH'
KEY_PATH='PATH/TO/SSH/KEY' # Path on local machine
Now that you've provided needed information to the upgrade script, run it:
sh upgrade_to_2018.3.1.sh
The script prompts you to make a few selections. Confirm that all information is correct by providing either a y
or n
response to each prompt:
- Answer
y
to migrate Elasticsearch. - Answer
y
to clean up old Promote instances. - Answer
y
to configure Docker with the new 2018.3.1.
After you indicate your preferences by responding to those prompts, the script kicks off several upgrade actions on your nodes:
1. Your manager node performs these actions:
- Removes stale indexes and templates from Elasticsearch 5.x
- Stops Promote
- Waits about 10 seconds for Promote services to shut down
- Removes stale influxdb data
2. All nodes perform these actions:
- Update the daemon.json file for Docker and then restart it
- Update system logging settings to use journald and restart systemd-journald
- Reboot
- Replace the promote.yml compose file
- Replace the updateImages.py file
3. Promote then restarts, which triggers a redeploy of all models.
After the script completes, wait for Promote services to build the UI and verify that it is up and running. You can watch these services generate:
watch -n .3 docker service ls
Check the Promote UI to verify that it is running and that all your models successfully redeploy.
Troubleshoot
If a model fails to redeploy, select the Redeploy button in the UI to trigger a manual redeploy. Find the Redeploy button under the Advanced settings for your model. If a manual redeploy fails to resolve the problem, contact Alteryx Support.