11.2.5. 状態の移行
アプリケーションの状態を設定する Persistent Volume Claim(永続ボリューム要求、PVC) を移行するために MTC (Migration Toolkit for Containers) を使用して反復可能な状態のみの移行を実行できます。移行計画から他の PVC を除外して、指定された PVC を移行します。PVC をマップし、ソースおよびターゲット PVC が同期されるようにできます。永続ボリューム (PV) データがターゲットクラスターにコピーされます。PV 参照は移動されず、アプリケーション Pod はソースクラスターでの実行を継続します。
状態の移行は、OpenShift Gitops などの外部 CD メカニズムと併用されるように特別に設計されています。MTC を使用して状態を移行する間に GitOps を使用してアプリケーションマニフェストを移行できます。
CI/CD パイプラインがある場合には、それらをターゲットクラスターにデプロイすることでステートレスコンポーネントを移行できます。次に、MTC を使用してステートフルコンポーネントを移行できます。
クラスター間または同じクラスター間で状態の移行を実行できます。
状態の移行は、アプリケーションの状態を設定するコンポーネントのみを移行します。namespace 全体を移行する場合は、ステージまたはカットオーバー移行を使用します。
前提条件
-
ソースクラスターのアプリケーションの状態は、
PersistentVolumeClaims
でプロビジョニングされたPersistentVolume
で永続化されます。 - アプリケーションのマニフェストは、ソースクラスターとターゲットクラスターの両方からアクセスできる中央リポジトリーで利用できます。
手順
永続ボリュームデータをソースからターゲットクラスターに移行します。
この手順は、必要に応じて何度でも実行することができます。ソースアプリケーションは実行を継続します。
ソースアプリケーションを休止します。
これは、ワークロードリソースのレプリカを、ソースクラスターに直接設定するか、GitHub でマニフェストを更新して Argo CD アプリケーションを再同期することで、
0
に設定できます。アプリケーションマニフェストのクローンをターゲットクラスターに作成します。
Argo CD を使用して、アプリケーションマニフェストのクローンをターゲットクラスターに作成できます。
残りのボリュームデータをソースからターゲットクラスターに移行します。
最終的なデータ移行を実行して、状態移行プロセス中にアプリケーションによって作成された新しいデータを移行します。
- クローンを作成したアプリケーションが休止状態の場合は、停止を解除します。
- DNS レコードをターゲットクラスターに切り替えて、ユーザートラフィックを移行されたアプリケーションにリダイレクトします。
MTC 1.6 は、状態移行の実行時にアプリケーションを自動的に停止できません。PV データのみ移行できます。したがって、アプリケーションの停止や停止解除に CD メカニズムを使用する必要があります。
MTC 1.7 では、明示的なステージおよびカットオーバーフローが導入されました。ステージングを使用して、必要なだけデータ転送を行うことができます。その後、カットオーバーを実行すると、ソースアプリケーションが自動的に停止します。
前提条件
-
ソースクラスターのアプリケーションの状態は、
PersistentVolumeClaims
でプロビジョニングされたPersistentVolume
で永続化されます。 - アプリケーションのマニフェストは、ソースクラスターとターゲットクラスターの両方からアクセスできる中央リポジトリーで利用できます。
手順
永続ボリュームデータをソースからターゲットクラスターに移行します。
この手順は、必要に応じて何度でも実行することができます。ソースアプリケーションは実行を継続します。
ソースアプリケーションを休止します。
これは、ワークロードリソースのレプリカを、ソースクラスターに直接設定するか、GitHub でマニフェストを更新して Argo CD アプリケーションを再同期することで、
0
に設定できます。アプリケーションマニフェストのクローンをターゲットクラスターに作成します。
Argo CD を使用して、アプリケーションマニフェストのクローンをターゲットクラスターに作成できます。
残りのボリュームデータをソースからターゲットクラスターに移行します。
最終的なデータ移行を実行して、状態移行プロセス中にアプリケーションによって作成された新しいデータを移行します。
- クローンを作成したアプリケーションが休止状態の場合は、停止を解除します。
- DNS レコードをターゲットクラスターに切り替えて、ユーザートラフィックを移行されたアプリケーションにリダイレクトします。
MTC 1.6 は、状態移行の実行時にアプリケーションを自動的に停止できません。PV データのみ移行できます。したがって、アプリケーションの停止や停止解除に CD メカニズムを使用する必要があります。
MTC 1.7 では、明示的なステージおよびカットオーバーフローが導入されました。ステージングを使用して、必要なだけデータ転送を行うことができます。その後、カットオーバーを実行すると、ソースアプリケーションが自動的に停止します。
関連情報
- 状態移行用の PVC を選択するには、移行からの PVC の除外 を参照してください。
- ソース PV データを宛先クラスターのプロビジョニングされた PVC に移行する PVC のマッピング を参照してください。
- アプリケーションの状態を設定する Kubernetes オブジェクトを移行するには、Kubernetes オブジェクトの移行 を参照してください。