Update upgrade.md

Added Docker Enterprise Engine per 56e1797195 (r230222063)
This commit is contained in:
Anne Henmi 2018-11-02 07:50:35 -06:00 committed by GitHub
parent 56e1797195
commit 97adcf1dbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 21 deletions

View File

@ -6,16 +6,17 @@ redirect_from:
- /enterprise/upgrade/
---
## Engine 18.09 Upgrades
## Docker Enterprise Engine 18.09 Upgrades
In Docker Engine 18.09, significant architectural improvements were made to the network architecture in Swarm to increase
the performance and scale of the built-in load balancing functionality.
In Docker Enterprise Engine 18.09, significant architectural improvements were made to the network
architecture in Swarm to increase the performance and scale of the built-in load balancing functionality.
***NOTE:*** These changes introduce new constraints to the upgrade process that, if not correctly followed, can have
impact on the availability of applications running on the Swarm. These constraints impact any upgrades coming from any
version before 18.09 to version 18.09 or greater.
***NOTE:*** These changes introduce new constraints to the Docker Enterprise Engine upgrade process that,
if not correctly followed, can have impact on the availability of applications running on the Swarm. These
constraints impact any upgrades coming from any version before 18.09 to version 18.09 or greater.
## IP Address Consumption in 18.09+
In Swarm overlay networks, each task connected to a network consumes an IP address on that network. Swarm networks have a
finite amount of IPs based on the `--subnet` configured when the network is created. If no subnet is specified then Swarm
defaults to a `/24` network with 254 available IP addresses. When the IP space of a network is fully consumed, Swarm tasks
@ -34,7 +35,8 @@ To prevent this from happening, overlay networks should have enough capacity pri
>The above following only applies to containers running on Swarm overlay networks. This does not impact bridge, macvlan, host, or 3rd party docker networks.
## Cluster Upgrade Best Practices
Docker Engine upgrades in Swarm clusters should follow these guidelines in order to avoid exhaustion application downtime.
Docker Enterprise Engine upgrades in Swarm clusters should follow these guidelines in order to avoid exhaustion
application downtime.
* New workloads should not be actively scheduled in the cluster during upgrades. Large version mismatches between managers and workers can cause unintended consequences when new workloads are scheduled.
* Manager nodes should all be upgraded first before upgrading worker nodes. Upgrading manager nodes sequentially is recommended if live workloads in the cluster during the upgrade.
@ -45,7 +47,7 @@ Docker Engine upgrades in Swarm clusters should follow these guidelines in order
To upgrade Docker Enterprise Edition you need to individually upgrade each of the
following components:
1. Docker Engine.
1. Docker Enterprise Engine.
2. Universal Control Plane (UCP).
3. Docker Trusted Registry (DTR).
@ -55,7 +57,7 @@ to make sure there's no impact to your business.
## Create a backup
Before upgrading Docker EE, you should make sure you [create a backup](backup.md).
Before upgrading Docker Enterprise Engine, you should make sure you [create a backup](backup.md).
This makes it possible to recover if anything goes wrong during the upgrade.
## Check the compatibility matrix
@ -83,10 +85,10 @@ Before you upgrade, make sure:
> the UCP controller.
{: .important}
## Upgrade Docker Engine
## Upgrade Docker Enterprise Engine
To avoid application downtime, you should be running Docker in Swarm mode and
deploying your workloads as Docker services. That way you can
To avoid application downtime, you should be running Docker Enterprise Engine in
Swarm mode and deploying your workloads as Docker services. That way you can
drain the nodes of any workloads before starting the upgrade.
If you have workloads running as containers as opposed to swarm services,
@ -102,8 +104,7 @@ To ensure that workloads running as Swarm services have no downtime, you need to
4. Upgrade the Docker Engine on that node.
5. Make the node available again.
If you do this sequentially for every node, you can upgrade with no
application downtime.
If you do this sequentially for every node, you can upgrade with no application downtime.
When upgrading manager nodes, make sure the upgrade of a node finishes before
you start upgrading the next node. Upgrading multiple manager nodes at the same
time can lead to a loss of quorum, and possible data loss.
@ -111,7 +112,7 @@ time can lead to a loss of quorum, and possible data loss.
### Determine if the network is in danger of exhaustion
Starting with a cluster with one or more services configured, determine whether some networks
may require update in order to function correctly after an 18.09 upgrade.
may require update in order to function correctly after an Docker Enterprise Engine 18.09 upgrade.
1. SSH into a manager node.
@ -142,7 +143,7 @@ If the network is in danger of exhaustion, the output will show similar warnings
#### Triage and fix an upgrade that exhausted IP address space
Starting with a cluster with services that exhaust their overlay address space in 18.09, adjust the deployment to fix this issue.
Starting with a cluster with services that exhaust their overlay address space in Docker Enterprise Engine 18.09, adjust the deployment to fix this issue.
1. SSH into a manager node.
@ -187,12 +188,22 @@ i64lee19ia6s \_ ex_service.11 nginx:latest tk1706-ubuntu-1
7. Remove the original service and re-deploy with the new compose file. Confirm the adjusted service deployed successfully.
## Manager Upgrades When Moving to 18.09+
The following is a constraint introduced by architectural changes to the Swarm overlay networking when upgrading to 18.09. It only applies to this one-time upgrade and to workloads that are using the Swarm overlay driver. Once upgraded to 18.09, this constraint does not impact future upgrades.
## Manager Upgrades When Moving to Docker Enterprise Engine 18.09 and later
When upgrading to 18.09, manager nodes cannot reschedule new workloads on the managers until all managers have been upgraded to the 18.09 (or higher) version. During the upgrade of the managers, there is a possibility that any new workloads that are scheduled on the managers will fail to schedule until all of the managers have been upgraded.
The following is a constraint introduced by architectural changes to the Swarm overlay networking when
upgrading to Docker Enterprise Engine 18.09 or later. It only applies to this one-time upgrade and to w
orkloads that are using the Swarm overlay driver. Once upgraded to Docker Enterprise Engine 18.09, this
constraint does not impact future upgrades.
In order to avoid any impactful application downtime, it is advised to reschedule any critical workloads on to Swarm worker nodes during the upgrade of managers. Worker nodes and their network functionality will continue to operate independently during any upgrades or outages on the managers. Note that this restriction only applies to managers and not worker nodes.
When upgrading to Docker Enterprise Engine 18.09, manager nodes cannot reschedule new workloads on the
managers until all managers have been upgraded to the Docker Enterprise Engine 18.09 (or higher) version.
During the upgrade of the managers, there is a possibility that any new workloads that are scheduled on
the managers will fail to schedule until all of the managers have been upgraded.
In order to avoid any impactful application downtime, it is advised to reschedule any critical workloads
on to Swarm worker nodes during the upgrade of managers. Worker nodes and their network functionality
will continue to operate independently during any upgrades or outages on the managers. Note that this
restriction only applies to managers and not worker nodes.
### Drain the node
@ -224,7 +235,7 @@ If any worker nodes were drained, they can be undrained again by setting `--avai
## Upgrade UCP
Once you've upgraded the Docker Engine running on all the nodes, upgrade UCP.
Once you've upgraded the Docker Enterprise Engine running on all the nodes, upgrade UCP.
You can do this from the UCP web UI.
![UCP update notification banner](images/upgrade-1.png){: .with-border}