10.4. 移行計画のオプション
MigPlan カスタムリソース (CR) のコンポーネントを除外、編集、およびマップできます。
10.4.1. リソースの除外 リンクのコピーリンクがクリップボードにコピーされました!
移行に関するリソース負荷を減らしたり、別のツールでイメージや PV を移行するために、MTC (Migration Toolkit for Containers) からイメージストリーム、永続ボリューム (PV)、またはサブスクリプションなどのリソースを除外することができます。
デフォルトで、MTC は移行からサービスカタログリソースおよび Operator Lifecycle Manager (OLM) リソースを除外します。これらのリソースは、サービスカタログ API グループと OLM API グループの一部であり、現時点ではどちらの移行もサポートされていません。
手順
MigrationControllerカスタムリソースマニフェストを編集します。oc edit migrationcontroller <migration_controller> -n openshift-migration
$ oc edit migrationcontroller <migration_controller> -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のリソースを除外するパラメーターを追加して、
specセクションを更新します。独自の除外パラメーターを持たないリソースの場合は、additional_excluded_resourcesパラメーターを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
disable_image_migration: trueを追加して、移行からイメージストリームを除外します。MigrationControllerPod が再起動すると、imagestreamsがmain.ymlのexcluded_resourcesリストに追加されます。- 2
disable_pv_migration: trueを追加して、移行計画から PV を除外します。MigrationControllerPod が再起動すると、persistentvolumesとpersistentvolumeclaimsがmain.ymlのexcluded_resourcesリストに追加されます。PV 移行を無効にすると、移行計画の作成時に PV 検出も無効にできます。- 3
- 除外する OpenShift Container Platform リソースを
additional_excluded_resourcesリストに追加できます。
-
MigrationControllerPod が再起動し、変更が適用されるまで 2 分待機します。 リソースが除外されていることを確認します。
oc get deployment -n openshift-migration migration-controller -o yaml | grep EXCLUDED_RESOURCES -A1
$ oc get deployment -n openshift-migration migration-controller -o yaml | grep EXCLUDED_RESOURCES -A1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、除外されたリソースが含まれます。
出力例
name: EXCLUDED_RESOURCES value: resource1,resource2,imagetags,templateinstances,clusterserviceversions,packagemanifests,subscriptions,servicebrokers,servicebindings,serviceclasses,serviceinstances,serviceplans,imagestreams,persistentvolumes,persistentvolumeclaims
name: EXCLUDED_RESOURCES value: resource1,resource2,imagetags,templateinstances,clusterserviceversions,packagemanifests,subscriptions,servicebrokers,servicebindings,serviceclasses,serviceinstances,serviceplans,imagestreams,persistentvolumes,persistentvolumeclaimsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.2. namespace のマッピング リンクのコピーリンクがクリップボードにコピーされました!
MigPlan カスタムリソース (CR) で namespace をマッピングした場合には、namespace の UID および GID の範囲が移行時にコピーされるため、namespace が移行元または移行先ホストで複製されないようにする必要があります。
同じ宛先 namespace にマッピングされた 2 つのソース namespace
spec:
namespaces:
- namespace_2
- namespace_1:namespace_2
spec:
namespaces:
- namespace_2
- namespace_1:namespace_2
ソース namespace を同じ名前の namespace にマップする場合には、マッピングを作成する必要はありません。デフォルトでは、ソースの namespace とターゲット namespace の名前は同じです。
誤った namespace マッピング
spec:
namespaces:
- namespace_1:namespace_1
spec:
namespaces:
- namespace_1:namespace_1
正しい namespace リファレンス
spec:
namespaces:
- namespace_1
spec:
namespaces:
- namespace_1
10.4.3. 永続ボリューム要求の除外 リンクのコピーリンクがクリップボードにコピーされました!
移行しない PVC を除外して、状態移行用に永続ボリューム要求 (PVC) を選択します。永続ボリューム (PV) の検出後に MigPlan カスタムリソース (CR) の spec.persistentVolumes.pvc.selection.action パラメーターを設定して PVC を除外します。
前提条件
-
MigPlanCR がReady状態にある。
手順
spec.persistentVolumes.pvc.selection.actionパラメーターをMigPlanCR に追加し、それをskipに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.4. 永続ボリューム要求のマッピング リンクのコピーリンクがクリップボードにコピーされました!
永続ボリューム (PV) データをソースクラスターから、PVC をマッピングすることで、MigPlan CR の宛先クラスターですでにプロビジョニングされている永続ボリューム要求 (PVC) に移行できます。このマッピングにより、移行したアプリケーションの宛先 PVC がソース PVC と同期されます。
PV の検出後に MigPlan カスタムリソース (CR) の spec.persistentVolumes.pvc.name パラメーターを更新して PVC をマップします。
前提条件
-
MigPlanCR がReady状態にある。
手順
MigPlanCR のspec.persistentVolumes.pvc.nameパラメーターを更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ソースクラスターに PVC を指定し、宛先クラスターで PVC を指定します。宛先 PVC が存在しない場合、これは作成されます。このマッピングを使用して、移行時に PVC 名を変更できます。
10.4.5. 永続ボリューム属性の編集 リンクのコピーリンクがクリップボードにコピーされました!
MigPlan カスタムリソース (CR) を作成した後、MigrationController CR は永続ボリューム (PV) を検出します。spec.persistentVolumes ブロックと status.destStorageClasses ブロックが MigPlan CR に追加されます。
spec.persistentVolumes.selection ブロックの値を編集できます。spec.persistentVolumes.selection ブロックの外部で値を変更すると、MigPlan CR が MigrationController CR によって調整されるときに値が上書きされます。
spec.persistentVolumes.selection.storageClass パラメーターのデフォルト値は、次のロジックによって決定します。
-
ソースクラスター PV が Gluster または NFS の場合のデフォルトは、
accessMode: ReadWriteManyの場合はcephfs、accessMode: ReadWriteOnceの場合はcephrbdです。 -
PV が Gluster でも NFS でもない場合、もしくは、
cephfsまたはcephrbdが使用できない場合、デフォルトは同じプロビジョナーのストレージクラスです。 - 同じプロビジョナーのストレージクラスが使用できない場合、デフォルトは宛先クラスターのデフォルトのストレージクラスです。
storageClass 値を、MigPlan CR の status.destStorageClasses ブロック内の任意の name パラメーターの値に変更できます。
storageClass 値が空の場合、移行後、PV にはストレージクラスがありません。このオプションは、たとえば、PV を宛先クラスターの NFS ボリュームに移動する場合に適しています。
前提条件
-
MigPlanCR がReady状態にある。
手順
MigPlanCR でspec.persistentVolumes.selection値を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 許可される値は、
move、copy、およびskipです。サポートされているアクションが 1 つだけの場合、デフォルト値はサポートされているアクションです。複数のアクションがサポートされている場合、デフォルト値はcopyです。 - 2
- 許可される値は、
snapshotおよびfilesystemです。デフォルト値はfilesystemです。 - 3
- MTC Web コンソールでファイルシステムコピーの検証オプションを選択すると、
verifyパラメーターが表示されます。falseに設定できます。 - 4
- デフォルト値を、
MigPlanCR のstatus.destStorageClassesブロック内の任意のnameパラメーターの値に変更できます。値が指定されていない場合、PV は移行後にストレージクラスを持ちません。 - 5
- 使用できる値は
ReadWriteOnceおよびReadWriteManyです。この値が指定されていない場合、デフォルトはソースクラスター PVC のアクセスモードです。アクセスモードは、MigPlanでのみ編集できます。MTC Web コンソールを使用して編集することはできません。
10.4.6. MTC の Web コンソールでのストレージクラスの変換 リンクのコピーリンクがクリップボードにコピーされました!
永続ボリューム (PV) のストレージクラスは、同じクラスター内で移行することで変換できます。これを実行するには、Migration Toolkit for Containers (MTC) Web コンソールで移行計画を作成し、実行する必要があります。
前提条件
-
MTC が実行されているクラスターで
cluster-admin権限を持つユーザーとしてログインしている必要があります。 - クラスターを MTC Web コンソールに追加する必要があります。
手順
- OpenShift Container Platform Web コンソールの左側のナビゲーションペインで、Projects をクリックします。
プロジェクトリストで、プロジェクトをクリックします。
Project details ページが開きます。
- DeploymentConfig 名をクリックします。実行中の Pod の名前をメモします。
- プロジェクトの YAML タブを開きます。PV を検索し、対応する永続ボリュームクレーム (PVC) の名前をメモします。
- MTC Web コンソールで、Migration plans をクリックします。
- Add migration plan をクリックします。
Plan name を入力します。
移行計画名には、3 - 63 の小文字の英数字 (
a-z, 0-9) を使用できず、スペースやアンダースコア (_) を含めることはできません。- Migration type メニューから Storage class conversion を選択します。
- Source cluster リストから、ストレージクラスの変換に必要なクラスターを選択します。
Next をクリックします。
Namespaces ページが開きます。
- 必要なプロジェクト選択します。
Next をクリックします。
Persistent volumes ページが開きます。このページには、デフォルトで選択されている PV がすべて表示されます。
- それぞれの PV について、必要なターゲットストレージクラスを選択します。
Next をクリックします。
ウィザードで新しい移行計画が検証され、準備が完了したことが示されます。
Close をクリックします。
新しい計画が Migration plans ページに表示されます。
変換を開始するには、新しい計画のオプションメニューをクリックします。
Migrations の下に、Stage と Cutover の 2 つのオプションが表示されます。
注記カットオーバー移行は、アプリケーションの PVC 参照を更新します。
ステージ移行は、アプリケーションの PVC 参照を更新しません。
オプションを選択します。
選択したオプションに応じて、Stage migration または Cutover migration の通知が表示されます。
Migrate をクリックします。
選択したオプションに応じて、Stage started または Cutover started のメッセージが表示されます。
現在の移行ステータスを表示するには、Migrations 列の数字をクリックします。
Migrations ページが開きます。
現在の移行の詳細を表示し、その進捗をモニタリングするには、Type 列から移行を選択します。
Migration details ページが開きます。移行が DirectVolume の手順に進み、その手順のステータスが
Running Rsync Pods to migrate Persistent Volume dataになると、View details をクリックしてコピーの詳細なステータスを確認できます。- ブレッドクラムバーで Stage または Cutover をクリックし、すべての手順が完了するまで待ちます。
OpenShift Container Platform Web コンソールの PersistentVolumeClaims タブを開きます。
新しい PVC は初期 PVC の名前で表示できますが、
newで終わります。これは、ターゲットストレージクラスを使用しています。- 左側のナビゲーションペインで、Pods をクリックします。プロジェクトの Pod が再び実行されていることを確認します。
関連情報
-
moveおよびcopyアクションの詳細は、MTC ワークフロー を参照してください。 -
skipアクションの詳細は、移行からの PVC の除外 を参照してください。 - ファイルシステムとスナップショットのコピー方法の詳細は、データのコピー方法について を参照してください。
10.4.7. MTC API を使用した Kubernetes オブジェクトの状態移行の実行 リンクのコピーリンクがクリップボードにコピーされました!
すべての PV データを移行した後に、Migration Toolkit for Containers (MTC) API を使用して、アプリケーションを構成する Kubernetes オブジェクトの状態を移行を 1 回限りで実行できます。
これを行うには、MigPlan カスタムリソース (CR) フィールドを設定して、Kubernetes リソースのリストに追加のラベルセレクターを提供し、それらのリソースをさらにフィルタリングしてから、MigMigration CR を作成して移行します。MigPlan リソースは、移行後に終了します。
Kubernetes リソースの選択は API 限定の機能です。CLI を使用して、MigPlan CR を更新し、その MigMigration CR を作成する必要があります。MTC Web コンソールは、Kubernetes オブジェクトの移行をサポートしていません。
移行後に、MigPlan CR の closed パラメーターは true に設定されます。この MigPlan CR の別の MigMigration CR を作成することはできません。
以下のいずれかのオプションを使用して、Kubernetes オブジェクトを MigPlan CR に追加します。
-
Kubernetes オブジェクトを
includedResourcesセクションに追加します。MigPlanCR でincludedResourcesフィールドが指定されている場合に、プランはグループの種類のリストを入力として受け取ります。リストに存在するリソースのみが移行に含まれます。 -
オプションの
labelSelectorパラメーターを追加して、MigPlanのincludedResourcesをフィルター処理します。このフィールドを指定すると、ラベルセレクターに一致するリソースのみが移行に含まれます。たとえば、ラベルapp:frontendをフィルターとして使用して、SecretリソースとConfigMapリソースのリストをフィルタリングできます。
手順
MigPlanCR を更新して、Kubernetes リソースを含め、オプションで、labelSelectorパラメーターを追加して含まれているリソースをフィルタリングします。MigPlanCR を更新して Kubernetes リソースを含めるには以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes オブジェクトを指定します (例:
SecretまたはConfigMap)。
オプション:
labelSelectorパラメーターを追加して、含まれているリソースをフィルター処理するには、次のようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
MigMigrationCR を作成して、選択した Kubernetes リソースを移行します。正しいMigPlanがmigPlanRefで参照されていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow