Before you migrate your application workloads with the Migration Toolkit for Containers (MTC), review the following checklists.

Source cluster checklist

  • The cluster meets the minimum hardware requirements.

  • The OpenShift Container Platform version is 3.7, 3.9, 3.10, or 3.11.

  • The MTC version is the same on all clusters.

  • All nodes have an active OpenShift Container Platform subscription.

  • All the run-once tasks have been performed.

  • All the environment health checks have been performed.

  • You have checked for persistent volumes (PVs) with abnormal configurations stuck in a Terminating state by running the following command:

    $ oc get pv
  • You have checked for pods whose status is other than Running or Completed by running the following command:

    $ oc get pods --all-namespaces | egrep -v 'Running | Completed'
  • You have checked for pods with a high restart count by running the following command:

    $ oc get pods --all-namespaces --field-selector=status.phase=Running \
      -o json | jq '.items[]|select(any( .status.containerStatuses[]; \
      .restartCount > 3))|.metadata.name'

    Even if the pods are in a Running state, a high restart count might indicate underlying problems.

  • The internal container image registry uses a supported storage type.

  • You can read and write images to the registry.

  • The etcd cluster is healthy.

  • The average API server response time on the source cluster is less than 50 ms.

  • The cluster certificates are valid for the duration of the migration process.

  • You have checked for pending certificate-signing requests by running the following command:

    $ oc get csr -A | grep pending -i
  • The identity provider is working.

Target cluster checklist

  • The MTC version is the same on all clusters.

  • All MTC prerequisites are met.

  • The cluster meets the minimum hardware requirements for the specific platform and installation method, for example, on bare metal.

  • The cluster has storage classes defined for the storage types used by the source cluster, for example, block volume, file system, or object storage.

    NFS does not require a defined storage class.

  • The cluster has the correct network configuration and permissions to access external services, for example, databases, source code repositories, container image registries, and CI/CD tools.

  • External applications and services that use services provided by the cluster have the correct network configuration and permissions to access the cluster.

  • Internal container image dependencies are met.

    If an application uses an internal image in the openshift namespace that is not supported by OpenShift Container Platform 4.6, you can manually update the OpenShift Container Platform 3 image stream tag with podman.

  • The target cluster and the replication repository have sufficient storage space.

  • The identity provider is working.

Performance checklist

  • The migration network has a minimum throughput of 10 Gbps.

  • The clusters have sufficient resources for migration.

    Clusters require additional memory, CPUs, and storage in order to run a migration on top of normal workloads. Actual resource requirements depend on the number of Kubernetes resources being migrated in a single migration plan. You must test migrations in a non-production environment in order to estimate the resource requirements.

  • The memory and CPU usage of the nodes are healthy.

  • The etcd disk performance of the clusters has been checked with fio.