0 0 Share PDF

Error when upgrading to Enterprise Engine 18.09.1: incorrect containerd version

Article ID: KB000917

Issue

When upgrading the Docker Enterprise Engine from 18.09.0 to 18.09.1, whether as a "standalone" engine upgrade, or as a part of an overall Docker Enterprise Edition upgrade, the upgrade may fail at the engine upgrade step. This is due to incomplete upgrade instructions.

At present, this problem is known to affect Ubuntu and Ubuntu-derived nodes.

This problem does not affect new installations; it is only known to affect upgrades. This problem does not affect other or earlier versions of the engine, e.g. it does not affect 17.06.x nor 18.03.x

Prerequisites

  • An existing, running cluster of Docker Enterprise Edition (Basic, Standard, or Advanced)
  • Root or root-equivalent access to the command line of all nodes running in the cluster
  • Nodes that are running Ubuntu or Ubuntu-derived operating systems

Root Cause

The upgrade instructions in the release notes and the EE 2.1 upgrade documentation are incomplete. As part of the release of Docker Enterprise Engine 18.09.1, a sub-system called containerd was also updated. Instructions to perform the upgrade of that component were not included in our release notes or upgrade guide.

Resolution

When upgrading a cluster to the latest version of Docker Enterprise Edition 2.1 (UCP 3.1.2, DTR 2.6.1, Enterprise Engine 18.09.1) on Ubuntu, the upgrade may fail due to the presence of an earlier version of the containerd package, and the absence of commands or guidance on upgrading containerd to the required version, 1.2.2. Mitigation/remediation of this is possible through the following procedure.

All following commands must be run as root or a root-capable user on each node in the cluster.

  1. Perform the engine upgrade to 18.09.1, as described in the upgrade guide.

  2. Check to see if the node is affected by this problem:

    ubuntu@nodeX:~# sudo apt-get upgrade containerd.io
     Reading package lists... Done
     Building dependency tree
     Reading state information... Done
     containerd.io is already the newest version (1.2.0-1).
     Calculating upgrade... Done
     0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded
    

    Alternatively, you can check the version of the containerd via the following command:

     ubuntu@nodeX:~# containerd -v
     containerd github.com/containerd/containerd 1.2.0
    

    If the version of containerd returned is 1.2.0, the node is affected by this issue, and you must upgrade the containerd version.

    If the version of containerd returned is 1.2.2, the node is not affected by this issue, and you may continue with other steps in the upgrade of the cluster

  3. Trigger the upgrade of containerd to 1.2.2

    ubuntu@nodeX: sudo apt-get update && apt-get upgrade \
      docker-ee-cli \
      docker-ee \
      containerd.io
    

    This will ensure all Enterprise Engine components have the most recent version, including containerd.