10.2. MTC の Web コンソールを使用したアプリケーションの移行

クラスターおよびレプリケーションリポジトリーを MTC の Web コンソールを使用して設定する必要があります。次に、移行計画を作成し、これを実行できます。

10.2.1. MTC の Web コンソールの起動

ブラウザーで MTC (Migration Toolkit for Containers) Web コンソールを起動できます。

前提条件

  • MTC の Web コンソールには、OpenShift Container Platform Web コンソールにアクセスできる必要があります。
  • MTC の Web コンソールには、OAuth 認証サーバーへのネットワークアクセスが必要です。

手順

  1. MTC がインストールされている OpenShift Container Platform クラスターにログインします。
  2. 以下のコマンドを実行して MTC の Web コンソール URL を取得します。

    $ oc get -n openshift-migration route/migration -o go-template='https://{{ .spec.host }}'

    出力は https://migration-openshift-migration.apps.cluster.openshift.com のようになります。

  3. ブラウザーを起動し、MTC の Web コンソールに移動します。

    注記

    Migration Toolkit for Containers Operator のインストール後すぐに MTC の Web コンソールにアクセスしようとする場合、Operator は依然としてクラスターを設定しているため、コンソールが読み込まれない可能性があります。数分待機した後に再試行します。

  4. 自己署名 CA 証明書を使用している場合、ソースクラスター API サーバーの CA 証明書を受け入れることを求めるプロンプトが出されます。Web ページは、残りの証明書を受け入れるプロセスについて説明します。
  5. OpenShift Container Platform の ユーザー名 および パスワード を使用してログインします。

10.2.2. MTC の Web コンソールへのクラスターの追加

クラスターを MTC (Migration Toolkit for Containers) Web コンソールに追加できます。

前提条件

  • Azure スナップショットを使用してデータをコピーする場合:

    • クラスターの Azure リソースグループ名を指定する必要があります。
    • クラスターは同じ Azure リソースグループにある必要があります。
    • クラスターは同じ地理的な場所にある必要があります。
  • イメージの直接移行を使用している場合、ルートを公開する必要があります。

手順

  1. クラスターにログインする。
  2. migration-controller サービスアカウントトークンを取得します。

    $ oc sa get-token migration-controller -n openshift-migration

    出力例

    eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtaWciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoibWlnLXRva2VuLWs4dDJyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im1pZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YjFiYWMwLWMxYmYtMTFlOS05Y2NiLTAyOWRmODYwYjMwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptaWc6bWlnIn0.xqeeAINK7UXpdRqAtOj70qhBJPeMwmgLomV9iFxr5RoqUgKchZRG2J2rkqmPm6vr7K-cm7ibD1IBpdQJCcVDuoHYsFgV4mp9vgOfn9osSDp2TGikwNz4Az95e81xnjVUmzh-NjDsEpw71DH92iHV_xt2sTwtzftS49LpPW2LjrV0evtNBP_t_RfskdArt5VSv25eORl7zScqfe1CiMkcVbf2UqACQjo3LbkpfN26HAioO2oH0ECPiRzT0Xyh-KwFutJLS9Xgghyw-LD9kPKcE_xbbJ9Y4Rqajh7WdPYuB0Jd9DPVrslmzK-F6cgHHYoZEv0SvLQi-PO0rpDrcjOEQQ

  3. MTC の Web コンソールで、Clusters をクリックします。
  4. Add cluster をクリックします。
  5. 以下のフィールドに値を入力します。

    • Cluster name: クラスター名には、小文字 (a-z) および数字 (0-9) を含めることができます。スペースや国際的な文字を含めることはできません。
    • URL: API サーバー URL を指定します (例: https://<www.example.com>:8443)。
    • Service account token: migration-controller サービスアカウントトークンを貼り付けます。
    • Exposed route host to image registry: イメージの直接移行を使用している場合、ソースクラスターのイメージレジストリーへの公開されたルートを指定します。

      以下のコマンドを実行してルートを作成します。

      • OpenShift Container Platform 3 の場合:

        $ oc create route passthrough --service=docker-registry --port=5000 -n default
      • OpenShift Container Platform 4 の場合:

        $ oc create route passthrough --service=image-registry --port=5000 -n openshift-image-registry
    • Azure クラスター: Azure スナップショットを使用してデータをコピーする場合は、このオプションを選択する必要があります。
    • Azure resource group: このフィールドは、Azure cluster が選択されている場合に表示されます。Azure リソースグループを指定します。
    • Require SSL verification: オプション: このオプションを選択してクラスターへの SSL 接続を検証します。
    • CA bundle file: このフィールドは、Require SSL verification が選択されている場合に表示されます。自己署名証明書用にカスタム CA 証明書バンドルファイルを作成している場合は、Browse をクリックして CA バンドルファイルを選択し、これをアップロードします。
  6. Add cluster をクリックします。

    クラスターが Clusters 一覧に表示されます。

10.2.3. MTC の Web コンソールへのレプリケーションリポジトリーの追加

MTC (Migration Toolkit for Containers) の Web コンソールに、オブジェクトストレージをレプリケーションリポジトリーとして追加できます。

MTC は、以下のストレージプロバイダーをサポートしています。

  • Amazon Web Services (AWS) S3
  • Multi-Cloud Object Gateway (MCG)
  • 汎用 S3 オブジェクトストレージ (例: Minio または Ceph S3)
  • Google Cloud Provider (GCP)
  • Microsoft Azure Blob

前提条件

  • オブジェクトストレージをレプリケーションリポジトリーとして設定する必要があります。

手順

  1. MTC の Web コンソールで、Replication repositories をクリックします。
  2. Add repository をクリックします。
  3. Storage provider type を選択し、以下のフィールドに入力します。

    • AWS および MCG を含む S3 プロバイダー向けの AWS

      • Replication repository name: MTC の Web コンソールでレプリケーションリポジトリー名を指定します。
      • S3 bucket name: S3 バケットの名前を指定します。
      • S3 bucket region: S3 バケットリージョンを指定します。AWS S3 の場合に必須です。一部の S3 プロバイダーの場合は、オプション になります。予測値については、S3 プロバイダーの製品ドキュメントを確認してください。
      • S3 endpoint: バケットではなく S3 サービスの URL を指定します (例: https://<s3-storage.apps.cluster.com>)。汎用 S3 プロバイダーの場合は必須です。https:// 接頭辞を使用する必要があります。
      • S3 provider access key: AWS の場合は <AWS_SECRET_ACCESS_KEY> を指定し、MCG および他の S3 プロバイダーの場合は S3 プロバイダーアクセスキーを指定します。
      • S3 provider secret access key: AWS の場合は <AWS_ACCESS_KEY_ID> を指定し、MCG および他の S3 プロバイダーの場合は S3 プロバイダーシークレットアクセスキーを指定します。
      • Require SSL verification: 汎用 S3 プロバイダーを使用している場合は、このチェックボックスをクリアします。
      • 自己署名証明書用にカスタム CA 証明書バンドルを作成している場合は、Browse をクリックして Base64 でエンコードされたファイルを参照します。
    • GCP:

      • Replication repository name: MTC の Web コンソールでレプリケーションリポジトリー名を指定します。
      • GCP bucket name: GCP バケットの名前を指定します。
      • GCP credential JSON blob: credentials-velero ファイルに文字列を指定します。
    • Azure:

      • Replication repository name: MTC の Web コンソールでレプリケーションリポジトリー名を指定します。
      • Azure resource group: Azure Blob ストレージのリソースグループを指定します。
      • Azure storage account name: Azure Blob ストレージアカウント名を指定します。
      • Azure credentials - INI file contents: credentials-velero ファイルに文字列を指定します。
  4. Add repository をクリックし、接続の検証を待機します。
  5. Close をクリックします。

    新規リポジトリーが Replication repositories 一覧に表示されます。

10.2.4. MTC の Web コンソールでの移行計画の作成

MTC (Migration Toolkit for Containers) Web コンソールで移行計画を作成できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてすべてのクラスターにログインしている必要があります。
  • 同じ MTC バージョンがすべてのクラスターにインストールされていることを確認する必要があります。
  • クラスターおよびレプリケーションリポジトリーを MTC の Web コンソールに追加する必要があります。
  • move データコピー方法を使用して永続ボリューム (PV) を移行する場合、ソースクラスターおよびターゲットクラスターには、リモートボリュームへの中断されないネットワークアクセスが必要です。
  • イメージの直接移行を使用する必要がある場合は、ソースクラスターのイメージレジストリーに公開されたルートを指定する必要があります。これは、MTC の Web コンソールまたは MigCluster カスタムリソースマニフェストを更新して実行できます。

手順

  1. MTC Web コンソールで、Migration plans をクリックします。
  2. Add migration plan をクリックします。
  3. Plan name を入力します。

    移行計画名には、253 以上の小文字の英数字 (a-z, 0-9) を使用できず、スペースやアンダースコア (_) を含めることはできません。

  4. Source clusterTarget cluster、および Repository を選択します。
  5. Next をクリックします。
  6. 移行用のプロジェクトを選択します。
  7. オプション: プロジェクトの横にある編集アイコンをクリックして、ターゲットの namespace を変更します。
  8. Next をクリックします。
  9. 各 PV の 移行タイプ を選択します。

    • Copy オプションは、ソースクラスターの PV のデータをレプリケーションリポジトリーにコピーしてから、データを同様の特徴のある新規に作成された PV でターゲットクラスターで復元します。
    • Move オプションは、ソースクラスターからリモートボリューム (例: NFS) をアンマウントし、リモートボリュームをポイントするターゲットクラスターで PV リソースを作成し、その後にリモートボリュームをターゲットクラスターにマウントします。ターゲットクラスターで実行されているアプリケーションは、ソースクラスターが使用していたものと同じリモートボリュームを使用します。
  10. Next をクリックします。
  11. 各 PV の Copy method を選択します。

    • スナップショットのコピー は、クラウドプロバイダーのスナップショット機能を使用してデータのバックアップおよび復元を行います。この場合、ファイルシステムのコピー を使用する場合よりもはるかに高速になります。
    • ファイルシステムのコピー は、ソースクラスターのファイルをバックアップし、それらをターゲットクラスターで復元します。

      ファイルシステムのコピー方法は、ボリュームの直接移行に必要です。

  12. Verify copy を選択して、ファイルシステムのコピー で移行されたデータを確認します。データは、各ソースファイルのチェックサムを生成し、復元後のチェックサムを確認して検証されます。データ検証は、パフォーマンスを大幅に低下させます。
  13. Target storage class を選択します。

    Filesystem copy を選択している場合、ターゲットストレージクラスを変更できます。

  14. Next をクリックします。
  15. Migration options ページで、ソースクラスターに公開されたイメージレジストリールートを指定した場合に Direct image migration オプションが選択されます。Filesystem copy でデータを移行する場合、Direct PV migration オプションが選択されます。

    直接の移行オプションは、イメージおよびファイルをソースクラスターからターゲットクラスターに直接コピーします。このオプションは、イメージおよびファイルをソースクラスターからレプリケーションリポジトリーにコピーしてから、レプリケーションリポジトリーからターゲットクラスターにコピーする場合よりもはるかに高速になります。

  16. Next をクリックします。
  17. オプション: Add Hook をクリックし、移行計画にフックを追加します。

    フックはカスタムコードを実行します。単一の移行計画計画に最大 4 つのフックを追加できます。各フックは異なる移行ステップで実行されます。

    1. Web コンソールに表示するフックの名前を入力します。
    2. フックが Ansible Playbook の場合はAnsible playbook を選択し、Browse をクリックして Playbook をアップロードするか、フィールドに Playbook の内容を貼り付けます。
    3. オプション: デフォルトのフックイメージを使用していない場合は、Ansible ランタイムイメージを指定します。
    4. フックが Ansible Playbook ではない場合には、Custom container image をクリックし、イメージ名とパスを指定します。

      カスタムコンテナーイメージには、Ansible Playbook を含めることができます。

    5. Source cluster または Target cluster を選択します。
    6. Service account name および Service account namespace を入力します。
    7. フックの移行手順を選択します。

      • preBackup: アプリケーションのワークロードがソースクラスターでバックアップされる前
      • postBackup: アプリケーションのワークロードがソースクラスターでバックアップされた後
      • preRestore: アプリケーションのワークロードがターゲットクラスターで復元される前
      • postRestore: アプリケーションのワークロードがターゲットクラスターで復元された後
    8. Add をクリックします。
  18. Finish をクリックします。

    移行計画は、Migration plans 一覧に表示されます。

関連情報

10.2.5. MTC の Web コンソールでの移行計画の実行

MTC (Migration Toolkit for Containers) の Web コンソールで作成した移行計画を使用してアプリケーションとデータを移行できます。

注記

移行時に、MTC は移行された永続ボリューム (PV) の回収ポリシーをターゲットクラスターで Retain に設定します。

Backup カスタムリソースには、元の回収ポリシーを示す PVOriginalReclaimPolicy アノテーションが含まれます。移行した PV の回収ポリシーを手動で復元できます。

前提条件

MTC の Web コンソールには以下が含まれている必要があります。

  • Ready 状態のソースクラスター
  • Ready 状態のターゲットクラスター
  • レプリケーションリポジトリー
  • 有効な移行計画

手順

  1. MTC の Web コンソールにログインし、Migration plans をクリックします。
  2. 移行計画の横にある Options メニュー kebab をクリックし、Migration で以下のいずれかのオプションを選択します。

    • ステージ は、アプリケーションを停止せずにデータをソースクラスターからターゲットクラスターにコピーします。
    • Cutover はソースクラスターのトランザクションを停止し、リソースをターゲットクラスターに移動します。

      オプション: Cutover migration ダイアログで、移行時にソースクラスターで Halt トランザクションを消去できます。

    • State は、選択した永続ボリューム要求 (PVC) をコピーします。

      重要

      状態の移行を使用して、クラスター間で namespace を移行しないでください。代わりにステージまたはカットオーバー移行を使用してください。

      • State migration ダイアログで 1 つ以上の PVC を選択し、Migrate をクリックします。
  3. 移行が完了したら、アプリケーションが OpenShift Container Platform Web コンソールで正常に移行されていることを確認します。

    1. HomeProjects をクリックします。
    2. 移行されたプロジェクトをクリックしてそのステータスを表示します。
    3. Routes セクションで Location をクリックし、アプリケーションが機能していることを確認します (該当する場合)。
    4. WorkloadsPods をクリックし、Pod が移行した namespace で実行されていることを確認します。
    5. StoragePersistent volumes をクリックして、移行した永続ボリュームが正常にプロビジョニングされていることを確認します。