Preparing for Certification?

Introduction

Upgrading an entire cluster can be difficult. This guide is intended to provide high level instructions. The upgrade should happen in the following order: Engine and kernel, UCP, and then DTR. Order of operations is important.

Prerequisites

The guide assumes the following:

All nodes are CentOS based.

All nodes have Internet access.

All nodes are healthy and online.

Obviously there are dozens of permutations of OS and networking. The step order and ideas can easily be applied in most environments. It should be noted that a complete cluster upgrade of OS, Engine, UCP, and DTR should be performed during a maintenance window. The maintenance window should prevent any changes from jeopardizing the upgrade results.

Assumptions:

The Docker RPMS are in a repository and ready for use.

We are staying within a minor or patch upgrade. Example 17.06.2-ee4 --> 17.06.2-ee6

Step 1 - Upgrade Engine and OS

Before starting please note there is NO PROMOTION or DEMOTION of managers and workers! Because of the timing, this can cause a loss of quorum resulting in the need to restore. The restore procedures will require extra time, SO take it slow and be methodical.

Starting with the first Manager :

Stop Docker Engine. sudo systemctl stop docker

Upgrade the OS and Engine. sudo yum update -y If there was a kernel update you will need to reboot the node and skip step 3.

Start Docker Engine. sudo systemctl start docker

Verify the Manager node is up and healthy. On node : sudo docker node ls and verify the manager is healthy.

**Please wait for the rebooted/upgraded manager to become active and healthy in the cluster before proceeding. **

Then repeat with the next Manager if it exists.

Once all the managers have been upgraded, proceed with the DTR servers.

Continuing with the first DTR replica :

Stop Docker Engine. sudo systemctl stop docker

Upgrade the OS and Engine. sudo yum update -y If there was a kernel update you will need to reboot the node and skip step 3.

Start Docker Engine. sudo systemctl start docker

Please wait for the rebooted/upgraded DTR replica to become active and healthy in the cluster before proceeding.

Then repeat with the next DTR replica if it exists.

Once all the DTR replicas have been upgraded, proceed with the rest of the workers.

Next we can proceed with the rest of the Workers : Let's assume a graceful action.

If the node was rebooted, from a Manager node: sudo docker node update --availability active $NODE_NAME

Step 2 - Upgrade UCP

Now that the OS and Engine are updated, follow the main documentation for upgrading UCP. The UCP upgrade will not interrupt the applications running within the cluster. It is also worth noting that NO configuration changes should be made during the upgrade.