1.6. CAM Web コンソールを使用したアプリケーションの移行
アプリケーションワークロードの移行は、クラスターおよびレプリケーションリポジトリーを CAM Web コンソールに追加することによって実行できます。次に、移行計画を作成し、これを実行できます。
クラスターまたはレプリケーションリポジトリーのセキュリティーを自己署名証明書で保護する場合、CA 証明書バンドルファイルを作成するか、または SSL 検証を無効にできます。
1.6.1. CA 証明書バンドルファイルの作成
自己署名証明書を使用してクラスターまたはレプリケーションリポジトリーのセキュリティーを保護する場合、証明書の検証は Certificate signed by unknown authority
というエラーメッセージを出して失敗する可能性があります。
カスタム CA 証明書バンドルファイルを作成し、クラスターまたはレプリケーションリポジトリーの追加時に CAM Web コンソールでこれをアップロードできます。
手順
リモートエンドポイントから CA 証明書をダウンロードし、これを CA バンドルファイルとして保存します。
$ echo -n | openssl s_client -connect <host_FQDN>:<port> \ 1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <ca_bundle.cert> 2
1.6.2. CAM Web コンソールへのクラスターの追加
クラスターを CAM Web コンソールに追加できます。
前提条件
Azure スナップショットを使用してデータをコピーする場合:
- ソースクラスターの追加時に Azure リソースグループ名を指定する必要があります。
- ソースおよびターゲットクラスターは同じ Azure リソースグループにあり、同じ場所にある必要があります。
手順
- クラスターにログインします。
サービスアカウントトークンを取得します。
$ oc sa get-token mig -n openshift-migration eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtaWciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoibWlnLXRva2VuLWs4dDJyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im1pZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YjFiYWMwLWMxYmYtMTFlOS05Y2NiLTAyOWRmODYwYjMwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptaWc6bWlnIn0.xqeeAINK7UXpdRqAtOj70qhBJPeMwmgLomV9iFxr5RoqUgKchZRG2J2rkqmPm6vr7K-cm7ibD1IBpdQJCcVDuoHYsFgV4mp9vgOfn9osSDp2TGikwNz4Az95e81xnjVUmzh-NjDsEpw71DH92iHV_xt2sTwtzftS49LpPW2LjrV0evtNBP_t_RfskdArt5VSv25eORl7zScqfe1CiMkcVbf2UqACQjo3LbkpfN26HAioO2oH0ECPiRzT0Xyh-KwFutJLS9Xgghyw-LD9kPKcE_xbbJ9Y4Rqajh7WdPYuB0Jd9DPVrslmzK-F6cgHHYoZEv0SvLQi-PO0rpDrcjOEQQ
- CAM Web コンソールにログインします。
- Clusters セクションで、Add cluster をクリックします。
以下のフィールドに値を入力します。
-
Cluster name: 小文字 (
a-z
) および数字 (0-9
) を含めることができます。空白文字や国際文字を含めることはできません。 -
Url: クラスターの API サーバーの URLです (例:
https://<master1.example.com>:8443
)。 - Service account token: ソースクラスターから取得される文字列。
- Azure cluster: オプション。Azure スナップショットを使用してデータをコピーする場合はこれを選択します。
- Azure resource group: このフィールドは、Azure cluster にチェックを付けると表示されます。
- カスタム CA バンドルを使用する場合は、Browse をクリックし、CA バンドルファイルを参照します。
-
Cluster name: 小文字 (
Add cluster をクリックします。
クラスターが Clusters セクションに表示されます。
1.6.3. CAM Web コンソールへのレプリケーションリポジトリーの追加
CAM Web コンソールには、オブジェクトストレージバケットをレプリケーションリポジトリーとして追加できます。
前提条件
- データを移行するには、オブジェクトストレージバケットを設定する必要があります。
手順
- CAM Web コンソールにログインします。
- Replication repositories セクションで、Add repository をクリックします。
Storage provider type を選択し、以下のフィールドに入力します。
AWS (AWS S3、MCG、および汎用 S3 プロバイダーの場合):
- Replication repository name: CAM Web コンソールでレプリケーションリポジトリー名を指定します。
- S3 bucket name: 作成した S3 バケットの名前を指定します。
- S3 bucket region: S3 バケットリージョンを指定します。AWS S3 の場合に必須です。Optional (他の 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 provider secret access key: AWS には
<AWS_ACCESS_KEY_ID>
を指定するか、または MCG には S3 プロバイダーシークレットアクセスキーを指定します。 - Require SSL verification: 汎用 S3 プロバイダーを使用している場合は、このチェックボックスをクリアします。
- カスタム CA バンドルを使用する場合は、Browse をクリックし、Base64 でエンコードされた CA バンドルファイルを参照します。
GCP:
- Replication repository name: CAM Web コンソールでレプリケーションリポジトリー名を指定します。
- GCP bucket name: GCP バケットの名前を指定します。
-
GCP credential JSON blob:
credentials-velero
ファイルに文字列を指定します。
Azure:
- Replication repository name: CAM Web コンソールでレプリケーションリポジトリー名を指定します。
- Azure resource group: Azure Blob ストレージのリソースグループを指定します。
- Azure storage account name: Azure Blob ストレージアカウント名を指定します。
-
Azure credentials - INI file contents:
credentials-velero
ファイルに文字列を指定します。
- Add repository をクリックし、接続の検証を待機します。
Close をクリックします。
新規リポジトリーが Replication repositories セクションに表示されます。
1.6.4. 大規模な移行の場合の移行計画の制限の変更
大規模な移行の移行計画の制限を変更することができます。
移行の失敗を防ぐために、まず変更についてのテストをご使用の環境で実行する必要があります。
単一の移行計画には以下のデフォルト制限があります。
10 namespace
この制限を超えると、CAM Web コンソールは Namespace limit exceeded エラーを表示し、移行計画を作成することができません。
100 Pod
Pod の制限を超える場合、CAM Web コンソールには、以下の例と同様の警告メッセージが表示されます。Plan has been validated with warning condition(s).See warning message.Pod limit: 100 exceeded, found: 104
100 永続ボリューム
永続ボリュームの制限を超過すると、CAM Web コンソールには同様の警告メッセージが表示されます。
手順
Migration コントローラー CR を編集します。
$ oc get migrationcontroller -n openshift-migration NAME AGE migration-controller 5d19h $ oc edit migrationcontroller -n openshift-migration
以下のパラメーターを更新します。
... migration_controller: true # This configuration is loaded into mig-controller, and should be set on the # cluster where `migration_controller: true` mig_pv_limit: 100 mig_pod_limit: 100 mig_namespace_limit: 10 ...
1.6.5. CAM Web コンソールでの移行計画の作成
CAM Web コンソールで移行計画を作成できます。
前提条件
CAM Web コンソールには以下が含まれている必要があります。
- ソースクラスター
- CAM ツールのインストール時に自動的に追加されるターゲットクラスター
- レプリケーションリポジトリー
- ソースおよびターゲットクラスターには、相互に対するネットワークアクセスやレプリケーションリポジトリーへのネットワークアクセスがなければなりません。
- スナップショットを使用してデータをコピーする場合、ソースおよびターゲットクラスターは、同じクラウドプロバイダー(AWS、GCP、または Azure)および同じリージョンで実行される必要があります。
手順
- CAM Web コンソールにログインします。
- Plans セクションで、Add plan をクリックします。
Plan name を入力し、Next をクリックします。
Plan name には、最大 253 文字の小文字の英数字 (
a-z、0-9
) を含めることができます。スペースまたはアンダースコア (_
) を含めることはできません。- Source cluster を選択します。
- Target clusterを選択します。
- Replication repository を選択します。
- 移行するプロジェクトを選択し、Next をクリックします。
PV の Copy または Move を選択します。
Copy は、ソースクラスターの PV のデータをレプリケーションリポジトリーにコピーしてから、これを同様の特徴のある新規に作成された PV で復元します。
オプション: Verify copy を選択して、ファイルシステムメソッドでコピーされたデータを検証できます。このオプションを使用すると、各ソースファイルのチェックサムが生成され、復元後のチェックが実行されるため、パフォーマンスが大幅に低下します。
- Move は、ソースクラスターからリモートボリューム (例: NFS) をアンマウントし、リモートボリュームをポイントするターゲットクラスターで PV リソースを作成し、その後にリモートボリュームをターゲットクラスターにマウントします。ターゲットクラスターで実行されているアプリケーションは、ソースクラスターが使用していたものと同じリモートボリュームを使用します。リモートボリュームは、ソースクラスターおよびターゲットクラスターからアクセスできる必要があります。
- Next をクリックします。
PV の Copy method を選択します。
Snapshot は、クラウドプロバイダーのスナップショット機能を使用してディスクのバックアップおよび復元を行います。この場合、ファイルシステムを使用する場合よりもはるかに高速になります。
注記ストレージおよびクラスターは同じリージョンにあり、ストレージクラスには互換性がなければなりません。
- ファイルシステムは、データファイルをソースディスクから新規に作成されたターゲットディスクにコピーします。
PV の Storage class を選択します。
Filesystem のコピー方法を選択した場合、移行時にストレージクラスを変更できます。たとえば、Red Hat Gluster Storage または NFS ストレージから Red Hat Ceph Storage に変更できます。
- Next をクリックします。
移行フックを追加する必要がある場合は、Add Hook をクリックして、以下の手順を実行します。
- フックの名前を指定します。
- Ansible playbook を選択して独自の Playbook を使用するか、または別の言語で作成されがフックに Custom container image を選択します。
- Browse をクリックして Playbook をアップロードします。
- オプション: デフォルトの Ansible ランタイムイメージを使用していない場合は、カスタムの Ansible イメージを指定します。
- フックを実行する必要のあるクラスターを指定します。
- サービスアカウント名を指定します。
- namespace を指定します。
フックを実行する必要のある移行手順を選択します。
- PreBackup: バックアップタスクがソースクラスターで開始される前
- PostBackup: バックアップタスクがソースクラスターで完了した後
- PreRestore: 復元タスクがターゲットクラスターで開始される前
- PostRestore: 復元タスクがターゲットクラスターで完了した後
Add をクリックします。
移行計画に最大 4 つのフックを追加し、それぞれのフックを異なる移行手順に割り当てることができます。
- Finish をクリックします。
Close をクリックします。
移行計画は Plans セクションに表示されます。
1.6.6. CAM Web コンソールでの移行計画の実行
CAM Web コンソールで作成した移行計画を使用してアプリケーションとデータをステージングしたり、移行したりできます。
前提条件
CAM Web コンソールには以下が含まれている必要があります。
- ソースクラスター
- CAM ツールのインストール時に自動的に追加されるターゲットクラスター
- レプリケーションリポジトリー
- 有効な移行計画
手順
- ターゲットクラスターの CAM Web コンソールにログインします。
- 移行計画を選択します。
Stage をクリックし、アプリケーションを停止せずにソースクラスターからターゲットクラスターにデータをコピーします。
実際の移行時間を短縮するには、Stage を複数回実行することができます。
アプリケーションのワークロードを移行する準備ができたら、Migrate をクリックします。
Migrate は、ソースクラスターでアプリケーションワークロードを停止し、ターゲットクラスターでそのリソースを再作成します。
- オプション: Migrate ウィンドウで Do not stop applications on the source cluster during migration を選択できます。
- Migrate をクリックします。
- オプション: 進行中の移行を停止するには、Options メニュー をクリックし、Cancel を選択します。
移行が完了したら、アプリケーションが OpenShift Container Platform Web コンソールで正常に移行されていることを確認します。
-
Home
Projects をクリックします。 - 移行されたプロジェクトをクリックしてそのステータスを表示します。
- Routes セクションで Location をクリックし、アプリケーションが機能していることを確認します (該当する場合)。
-
Workloads
Pods をクリックし、Pod が移行した namespace で実行されていることを確認します。 -
Storage
Persistent volumes をクリックして、移行した永続ボリュームが正常にプロビジョニングされていることを確認します。
-
Home