9.2. MTC の Web コンソールを使用したアプリケーションの移行
クラスターおよびレプリケーションリポジトリーを MTC の Web コンソールを使用して設定する必要があります。次に、移行計画を作成し、これを実行できます。
9.2.1. MTC の Web コンソールの起動
ブラウザーで Migration Toolkit for Containers (MTC) Web コンソールを起動できます。
前提条件
- MTC の Web コンソールには、OpenShift Container Platform Web コンソールにアクセスできる必要があります。
- MTC の Web コンソールには、OAuth 認証サーバーへのネットワークアクセスが必要です。
手順
- MTC がインストールされている OpenShift Container Platform クラスターにログインします。
以下のコマンドを実行して MTC の Web コンソール URL を取得します。
$ oc get -n openshift-migration route/migration -o go-template='https://{{ .spec.host }}'
出力は
https://migration-openshift-migration.apps.cluster.openshift.com
のようになります。ブラウザーを起動し、MTC の Web コンソールに移動します。
注記Migration Toolkit for Containers Operator のインストール後すぐに MTC の Web コンソールにアクセスしようとする場合、Operator は依然としてクラスターを設定しているため、コンソールが読み込まれない可能性があります。数分待機した後に再試行します。
- 自己署名 CA 証明書を使用している場合、ソースクラスター API サーバーの CA 証明書を受け入れることを求めるプロンプトが出されます。Web ページは、残りの証明書を受け入れるプロセスを説明します。
- OpenShift Container Platform の ユーザー名 および パスワード を使用してログインします。
9.2.2. MTC の Web コンソールへのクラスターの追加
クラスターを Migration Toolkit for Containers (MTC) Web コンソールに追加できます。
前提条件
- クロスオリジンリソース共有がソースクラスターで設定されている必要があります。
Azure スナップショットを使用してデータをコピーする場合:
- クラスターの Azure リソースグループ名を指定する必要があります。
- クラスターは同じ Azure リソースグループにある必要があります。
- クラスターは同じ地理的な場所にある必要があります。
- イメージの直接移行を使用する場合は、ソースクラスターのイメージレジストリーにルートを公開する必要があります。
手順
- クラスターにログインする。
migration-controller
サービスアカウントトークンを取得します。$ oc create token migration-controller -n openshift-migration
出力例
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtaWciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoibWlnLXRva2VuLWs4dDJyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im1pZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YjFiYWMwLWMxYmYtMTFlOS05Y2NiLTAyOWRmODYwYjMwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptaWc6bWlnIn0.xqeeAINK7UXpdRqAtOj70qhBJPeMwmgLomV9iFxr5RoqUgKchZRG2J2rkqmPm6vr7K-cm7ibD1IBpdQJCcVDuoHYsFgV4mp9vgOfn9osSDp2TGikwNz4Az95e81xnjVUmzh-NjDsEpw71DH92iHV_xt2sTwtzftS49LpPW2LjrV0evtNBP_t_RfskdArt5VSv25eORl7zScqfe1CiMkcVbf2UqACQjo3LbkpfN26HAioO2oH0ECPiRzT0Xyh-KwFutJLS9Xgghyw-LD9kPKcE_xbbJ9Y4Rqajh7WdPYuB0Jd9DPVrslmzK-F6cgHHYoZEv0SvLQi-PO0rpDrcjOEQQ
- MTC の Web コンソールにログインします。
- MTC の Web コンソールで、Clusters をクリックします。
- Add cluster をクリックします。
以下のフィールドに値を入力します。
-
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 cluster: Azure スナップショットを使用してデータをコピーする場合は、このオプションを選択する必要があります。
Azure resource group: このフィールドは、Azure cluster が選択されている場合に表示されます。Azure リソースグループを指定します。
OpenShift Container Platform クラスターが Microsoft Azure 上に作成されると、クラスターに関連付けられているすべてのリソースを含む Azure リソースグループが作成されます。Azure CLI で、次のコマンドを発行してすべてのリソースグループを表示できます。
$ az group list
OpenShift Container Platform クラスターに関連付けられた
ResourceGroups
は、タグ付けされています。sample-rg-name
値を抽出して UI で指定します。{ "id": "/subscriptions/...//resourceGroups/sample-rg-name", "location": "centralus", "name": "...", "properties": { "provisioningState": "Succeeded" }, "tags": { "kubernetes.io_cluster.sample-ld57c": "owned", "openshift_creationDate": "2019-10-25T23:28:57.988208+00:00" }, "type": "Microsoft.Resources/resourceGroups" },
この情報は、Azure Portal の Resource groups ブレードからも取得できます。
- Require SSL verification: オプション: クラスターへの Secure Socket Layer (SSL) 接続を検証するには、このオプションを選択します。
- CA bundle file: このフィールドは、Require SSL verification が選択されている場合に表示されます。自己署名証明書用にカスタム CA 証明書バンドルファイルを作成している場合は、Browse をクリックして CA バンドルファイルを選択し、これをアップロードします。
-
Cluster name: クラスター名には、小文字 (
Add cluster をクリックします。
クラスターが Clusters リストに表示されます。
9.2.3. MTC の Web コンソールへのレプリケーションリポジトリーの追加
Migration Toolkit for Containers (MTC) の Web コンソールに、オブジェクトストレージをレプリケーションリポジトリーとして追加できます。
MTC は、以下のストレージプロバイダーをサポートしています。
- Amazon Web Services (AWS) S3
- Multi-Cloud Object Gateway (MCG)
- 汎用 S3 オブジェクトストレージ (例: Minio または Ceph S3)
- Google Cloud Provider (GCP)
- Microsoft Azure Blob
前提条件
- オブジェクトストレージをレプリケーションリポジトリーとして設定する必要があります。
手順
- MTC の Web コンソールで、Replication repositories をクリックします。
- Add repository をクリックします。
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
ファイルに文字列を指定します。
- Add repository をクリックし、接続の検証を待機します。
Close をクリックします。
新規リポジトリーが Replication repositories リストに表示されます。
9.2.4. MTC の Web コンソールでの移行計画の作成
Migration Toolkit for Containers (MTC) Web コンソールで移行計画を作成できます。
前提条件
-
cluster-admin
権限を持つユーザーとしてすべてのクラスターにログインしている必要があります。 - 同じ MTC バージョンがすべてのクラスターにインストールされていることを確認する必要があります。
- クラスターおよびレプリケーションリポジトリーを MTC の Web コンソールに追加する必要があります。
- move データコピー方法を使用して永続ボリューム (PV) を移行する場合、ソースクラスターおよびターゲットクラスターには、リモートボリュームへの中断されないネットワークアクセスが必要です。
-
イメージの直接移行を使用する必要がある場合は、ソースクラスターのイメージレジストリーに公開されたルートを指定する必要があります。これは、MTC の Web コンソールまたは
MigCluster
カスタムリソースマニフェストを更新して実行できます。
手順
- MTC Web コンソールで、Migration plans をクリックします。
- Add migration plan をクリックします。
Plan name を入力します。
移行計画名には、253 以上の小文字の英数字 (
a-z, 0-9
) を使用できず、スペースやアンダースコア (_
) を含めることはできません。- Source cluster、Target cluster、および Repository を選択します。
- Next をクリックします。
- 移行用のプロジェクトを選択します。
- オプション: プロジェクトの横にある編集アイコンをクリックして、ターゲットの namespace を変更します。
- Next をクリックします。
各 PV の 移行タイプ を選択します。
- Copy オプションは、ソースクラスターの PV のデータをレプリケーションリポジトリーにコピーしてから、データを同様の特徴のある新規に作成された PV でターゲットクラスターで復元します。
- Move オプションは、ソースクラスターからリモートボリューム (例: NFS) をアンマウントし、リモートボリュームをポイントするターゲットクラスターで PV リソースを作成し、その後にリモートボリュームをターゲットクラスターにマウントします。ターゲットクラスターで実行されているアプリケーションは、ソースクラスターが使用していたものと同じリモートボリュームを使用します。
- Next をクリックします。
各 PV の Copy method を選択します。
- スナップショットのコピー は、クラウドプロバイダーのスナップショット機能を使用してデータのバックアップおよび復元を行います。この場合、ファイルシステムのコピー を使用する場合よりもはるかに高速になります。
ファイルシステムのコピー は、ソースクラスターのファイルをバックアップし、それらをターゲットクラスターで復元します。
ファイルシステムのコピー方法は、ボリュームの直接移行に必要です。
- Verify copy を選択して、ファイルシステムのコピー で移行されたデータを確認します。データは、各ソースファイルのチェックサムを生成し、復元後のチェックサムを確認して検証されます。データ検証は、パフォーマンスを大幅に低下させます。
Target storage class を選択します。
Filesystem copy を選択している場合、ターゲットストレージクラスを変更できます。
- Next をクリックします。
Migration options ページで、ソースクラスターに公開されたイメージレジストリールートを指定した場合に Direct image migration オプションが選択されます。Filesystem copy でデータを移行する場合、Direct PV migration オプションが選択されます。
直接の移行オプションは、イメージおよびファイルをソースクラスターからターゲットクラスターに直接コピーします。このオプションは、イメージおよびファイルをソースクラスターからレプリケーションリポジトリーにコピーしてから、レプリケーションリポジトリーからターゲットクラスターにコピーする場合よりもはるかに高速になります。
- Next をクリックします。
オプション: Add Hook をクリックし、移行計画にフックを追加します。
フックはカスタムコードを実行します。単一の移行計画計画に最大 4 つのフックを追加できます。各フックは異なる移行ステップで実行されます。
- Web コンソールに表示するフックの名前を入力します。
- フックが Ansible Playbook の場合は Ansible playbook を選択し、Browse をクリックして Playbook をアップロードするか、フィールドに Playbook の内容を貼り付けます。
- オプション: デフォルトのフックイメージを使用していない場合は、Ansible ランタイムイメージを指定します。
フックが Ansible Playbook ではない場合には、Custom container image をクリックし、イメージ名とパスを指定します。
カスタムコンテナーイメージには、Ansible Playbook を含めることができます。
- Source cluster または Target cluster を選択します。
- Service account name および Service account namespace を入力します。
フックの移行手順を選択します。
- preBackup: アプリケーションのワークロードがソースクラスターでバックアップされる前
- postBackup: アプリケーションのワークロードがソースクラスターでバックアップされた後
- preRestore: アプリケーションのワークロードがターゲットクラスターで復元される前
- postRestore: アプリケーションのワークロードがターゲットクラスターで復元された後
- Add をクリックします。
Finish をクリックします。
移行計画は、Migration plans リストに表示されます。
永続ボリュームのコピー方法に関する他のリソース
9.2.5. MTC の Web コンソールでの移行計画の実行
Migration Toolkit for Containers (MTC) の Web コンソールで作成した移行計画を使用してアプリケーションとデータを移行できます。
移行時に、MTC は移行された永続ボリューム (PV) の回収ポリシーをターゲットクラスターで Retain
に設定します。
Backup
カスタムリソースには、元の回収ポリシーを示す PVOriginalReclaimPolicy
アノテーションが含まれます。移行した PV の回収ポリシーを手動で復元できます。
前提条件
MTC の Web コンソールには以下が含まれている必要があります。
-
Ready
状態のソースクラスター -
Ready
状態のターゲットクラスター - レプリケーションリポジトリー
- 有効な移行計画
手順
- MTC の Web コンソールにログインし、Migration plans をクリックします。
移行計画の横にある Options メニュー をクリックし、Migration で以下のいずれかのオプションを選択します。
- ステージ は、アプリケーションを停止せずにデータをソースクラスターからターゲットクラスターにコピーします。
Cutover はソースクラスターのトランザクションを停止し、リソースをターゲットクラスターに移動します。
オプション: Cutover migration ダイアログで、移行時にソースクラスターで Halt トランザクションを消去できます。
State は、選択した永続ボリューム要求 (PVC) をコピーします。
重要状態の移行を使用して、クラスター間で namespace を移行しないでください。代わりにステージまたはカットオーバー移行を使用してください。
- State migration ダイアログで 1 つ以上の PVC を選択し、Migrate をクリックします。
移行が完了したら、アプリケーションが OpenShift Container Platform Web コンソールで正常に移行されていることを確認します。
-
Home
Projects をクリックします。 - 移行されたプロジェクトをクリックしてそのステータスを表示します。
- Routes セクションで Location をクリックし、アプリケーションが機能していることを確認します (該当する場合)。
-
Workloads
Pods をクリックし、Pod が移行した namespace で実行されていることを確認します。 -
Storage
Persistent volumes をクリックして、移行した永続ボリュームが正常にプロビジョニングされていることを確認します。
-
Home