11.6. 移行コントローラーのオプション
移行計画の制限を編集したり、永続ボリュームのサイズ変更を有効にしたり、大規模な移行およびパフォーマンスを向上させる MigrationController カスタムリソース (CR) でキャッシュされた Kubernetes クライアントを有効にすることもできます。
11.6.1. 大規模な移行に関する制限の引き上げ リンクのコピーリンクがクリップボードにコピーされました!
Migration Toolkit for Containers (MTC) を使用した大規模な移行の場合には、移行オブジェクトおよびコンテナーリソースで制限を引き上げることができます。
実稼働環境で移行を実行する前に、これらの変更をテストする必要があります。
手順
MigrationControllerカスタムリソース (CR) マニフェストを編集します。oc edit migrationcontroller -n openshift-migration
$ oc edit migrationcontroller -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のパラメーターを更新します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
MigrationControllerCR で利用可能な CPU の数を指定します。- 2
MigrationControllerCR で利用可能なメモリー量を指定します。- 3
MigrationControllerCR 要求で利用可能な CPU ユニットの数を指定します。100mは 0.1 CPU ユニット (100 * 1e-3) を表します。- 4
MigrationControllerCR 要求で利用可能なメモリーの量を指定します。- 5
- 移行可能な永続ボリュームの数を指定します。
- 6
- 移行可能な Pod の数を指定します。
- 7
- 移行可能な namespace の数を指定します。
更新されたパラメーターを使用して変更を検証する移行計画を作成します。
移行計画が
MigrationControllerCR の制限を超える場合、MTC コンソールには移行計画を保存する際に警告メッセージが表示されます。
11.6.2. ボリュームの直接移行での永続ボリュームサイズ変更の有効化 リンクのコピーリンクがクリップボードにコピーされました!
ボリュームの直接移行用に永続ボリューム (PV) のサイズ変更を有効にして、宛先クラスターでディスク領域が不足しないようにします。
PV のディスク使用量が設定されたレベルに達すると、MigrationController カスタムリソース (CR) は、永続ボリューム要求 (PVC) の要求されるストレージ容量と実際のプロビジョニングされた容量を比較します。次に、この CR は宛先クラスターに必要な領域を計算します。
pv_resizing_threshold パラメーターは、PV のサイズ変更が使用されるタイミングを決定します。デフォルトのしきい値は 3% です。つまり、PV のディスク使用量が 97% を超える場合に PV のサイズ変更が発生します。PV のサイズ変更はディスク使用量が低いレベルで実行されるように、このしきい値を引き上げることができます。
PVC の容量は以下の基準に従って計算されます。
-
PVC の要求されるストレージ容量 (
spec.resources.requests.storage) が実際のプロビジョニングされた容量 (status.capacity.storage) と等しくない場合には、より大きい値が使用されます。 - PV が PVC 経由でプロビジョニングされ、その後に変更されて PV および PVC の容量が一致しなくなった場合に、より大きい値が使用されます。
前提条件
-
PVC は、
MigrationControllerCR がコマンドを実行できるように実行中の Pod 1 つ以上に割り当てる必要があります。
手順
- ホストクラスターにログインします。
MigrationControllerCR のパッチを適用して PV のサイズ変更を有効にします。oc patch migrationcontroller migration-controller -p '{"spec":{"enable_dvm_pv_resizing":true}}' \ --type='merge' -n openshift-migration$ oc patch migrationcontroller migration-controller -p '{"spec":{"enable_dvm_pv_resizing":true}}' \1 --type='merge' -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PV のサイズ変更を無効にするには、値を
falseに設定します。
必要に応じて、
pv_resizing_thresholdパラメーターを更新して、しきい値を増やします。oc patch migrationcontroller migration-controller -p '{"spec":{"pv_resizing_threshold":41}}' \ --type='merge' -n openshift-migration$ oc patch migrationcontroller migration-controller -p '{"spec":{"pv_resizing_threshold":41}}' \1 --type='merge' -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルト値は
3です。
しきい値を超えると、以下のステータスメッセージが
MigPlanCR ステータスに表示されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記AWS gp2 ストレージの場合に、gp2 がボリューム使用量とサイズを計算する方法が原因で、
pv_resizing_thresholdが 42% 以上でない限り、このメッセージが表示されます。(BZ#1973148)
11.6.3. キャッシュされた Kubernetes クライアントの有効化 リンクのコピーリンクがクリップボードにコピーされました!
移行時にパフォーマンスを向上させるために、キャッシュされた Kubernetes クライアントを MigrationController カスタムリソース (CR) で有効にできます。パフォーマンスに関する利点は、異なるリージョンのクラスター間で移行する場合や、ネットワークレイテンシーが大きい場合の移行時に発揮されます。
委譲されたタスク (例: 直接ボリューム移行または Velero バックアップおよび復元用の Rsync バックアップ) では、キャッシュされたクライアントのパフォーマンスは向上されません。
MigrationController CR は MigCluster CR との対話に必要なすべての API リソースをキャッシュするため、キャッシュされたクライアントには追加のメモリーが必要です。通常 API サーバーに送信される要求は、代わりにキャッシュに転送されます。このキャッシュは API サーバーで更新がないかを監視します。
キャッシュされたクライアントを有効にした後に OOMKilled エラーが発生すると、MigrationController CR のメモリー制限および要求を増やすことができます。
手順
以下のコマンドを実行して、キャッシュされたクライアントを有効化します。
oc -n openshift-migration patch migrationcontroller migration-controller --type=json --patch \ '[{ "op": "replace", "path": "/spec/mig_controller_enable_cache", "value": true}]'$ oc -n openshift-migration patch migrationcontroller migration-controller --type=json --patch \ '[{ "op": "replace", "path": "/spec/mig_controller_enable_cache", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 以下のコマンドを実行して
MigrationControllerCR メモリーの制限を増やします。oc -n openshift-migration patch migrationcontroller migration-controller --type=json --patch \ '[{ "op": "replace", "path": "/spec/mig_controller_limits_memory", "value": <10Gi>}]'$ oc -n openshift-migration patch migrationcontroller migration-controller --type=json --patch \ '[{ "op": "replace", "path": "/spec/mig_controller_limits_memory", "value": <10Gi>}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 以下のコマンドを実行して
MigrationControllerCR メモリー要求を増やします。oc -n openshift-migration patch migrationcontroller migration-controller --type=json --patch \ '[{ "op": "replace", "path": "/spec/mig_controller_requests_memory", "value": <350Mi>}]'$ oc -n openshift-migration patch migrationcontroller migration-controller --type=json --patch \ '[{ "op": "replace", "path": "/spec/mig_controller_requests_memory", "value": <350Mi>}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow