mirror of https://github.com/docker/docs.git
Migration documentation for interlock
This commit is contained in:
parent
2b3631c109
commit
50c2475dce
|
@ -0,0 +1,67 @@
|
|||
# Migration
|
||||
|
||||
In Docker EE UCP 2.X, the layer 7 routing of the platform was implemented using HRM. Starting with Docker EE UCP 3.X, the layer 7 routing is now implemented using Interlock. This article describes the process in which the migration from HRM to Interlock happens.
|
||||
|
||||
For context, let me recap on the HRM to interlock migration process:
|
||||
|
||||
0. HRM service is already enabled and configured by the customer.
|
||||
1. Migration from 2.2.4 to 3.0 starts
|
||||
2. Reconcilation process for interlock starts and HRM service is inspected.
|
||||
3. An interlock config is created from the HRM service spec and deployed as a docker config
|
||||
4. The HRM service is removed.
|
||||
5. The interlock service is deployed.
|
||||
6. The interlock extension and proxy service are deployed by the interlock service.
|
||||
|
||||
Currently, this process is not atomic, so any failure along the way will not result in the reversal of previous steps. In any case, if a failure occurs today the migration would need manual fixing to operate normally again.
|
||||
|
||||
In the following section, I cover different failure points, how to diagnostic, and to solve (when possible) from a customer/support standpoint.
|
||||
|
||||
### Before starting migration
|
||||
|
||||
**TODO**: Information [on interlock manual deploymenbt](https://beta.docs.docker.com/ee/ucp/interlock/install/manual-deployment/#deployment) is incorrect. Please update with procedure in this PR: https://github.com/docker/orca/issues/12227.
|
||||
|
||||
#### Migration check procedure
|
||||
|
||||
Record which of your HRM-enabled applications are routable through HRM by doing a curl request:
|
||||
|
||||
- For HTTP apps: ```curl -vs http://${CLUSTER_ID}:${HRM_HTTP_PORT}/ -H "Host: ${HOSTNAME}"```
|
||||
- For HTTPS apps: ```curl -vs http://${HOSTNAME}:${HRM_HTTPS_PORT}"```
|
||||
|
||||
When the migration, check that all applications that where routable before the migration still are.
|
||||
|
||||
#### Failure happens during step 1 before step 2
|
||||
|
||||
Not related to HRM interlock migration
|
||||
|
||||
#### Failure happens during step 2 before step 3
|
||||
|
||||
Codepath: https://github.com/docker/orca/blob/master/agent/agent/components/interlockservice/interlockservice.go
|
||||
|
||||
- **Diagnostic**: Only happens if the HRM service gets deleted somehow after being detected as present but before the migration to interlock starts.
|
||||
- **Resolution**: Follow the *manual hrm migration* procedure.
|
||||
|
||||
#### Failure happens during step 3 before step 4
|
||||
|
||||
- **Diagnostic**: `ucp-hrm` is still present, but the config `com.docker.ucp.interlock.conf-1` could not be created. Could happen due to name conflicts.
|
||||
- **Resolution**: Follow the *manual hrm migration* procedure.
|
||||
|
||||
#### Failure happens during step 4 before step 5
|
||||
|
||||
- **Diagnostic**: `ucp-hrm` failed to remove. The ucp interlock config is already created. Only happens if the service delete operation for the `ucp-hrm` service fails for some reason (unlikely).
|
||||
- **Resolution**: Follow the *manual hrm migration* procedure, but replace the interlock swarm config name from `com.docker.ucp.interlock.conf-1` to `com.docker.ucp.interlock.conf-2`.
|
||||
|
||||
#### Failure happens during step 5 before step 6
|
||||
|
||||
- **Diagnostic**: The `ucp-interlock` service failed to deploy. Only happens if the service create operation for the `ucp-interlock` service fails for some reason (unlikely).
|
||||
- **Resolution**: Enable interlock through the UI, making sure that the `PublishedPort` and `PublishedSSLPort` match the http and https ports you were using with HRM.
|
||||
|
||||
#### Failure happens during step 6
|
||||
|
||||
- **Diagnostic**: The `ucp-interlock-extension` or `ucp-interlock-proxy` services failed to deploy. May happen if there is a port conflict.
|
||||
- **Resolution**: Disable and then re-enable interlock through the UI, making sure that the `PublishedPort` and `PublishedSSLPort` match the http and https ports you were using with HRM.
|
||||
|
||||
#### Manual Migration procedure
|
||||
|
||||
1. delete the `ucp-hrm` service.
|
||||
2. Enable interlock manually (https://beta.docs.docker.com/ee/ucp/interlock/install/manual-deployment/), but instead of creating a new overlay network called `ucp-interlock`, reuse the existing `ucp-hrm`.
|
||||
3. Wait until the service named `ucp-interlock-proxy` is deployed with all replicas and then try the *migration check procedure* again.
|
Loading…
Reference in New Issue