9.2. MTC API でのアプリケーションの移行
このセクションでは、コマンドラインインターフェイス (CLI) から MTC API を使用してアプリケーションを移行する方法を説明します。
9.2.1. アプリケーションの移行について リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションをローカルクラスターからリモートクラスター、リモートクラスターからローカルクラスター、およびリモートクラスター間で移行できます。
9.2.1.1. 用語 リンクのコピーリンクがクリップボードにコピーされました!
- ソースクラスター
- アプリケーションの移行元となるクラスター。
- 宛先クラスター
- アプリケーションが移行されるクラスター。
- レプリケーションリポジトリー
- オブジェクトストレージ。
- すべてのクラスターへのネットワークアクセスが必要です。
- 間接的な移行
- イメージ、ボリューム、および Kubernetes オブジェクトはソースクラスターからレプリケーションリポジトリーにコピーされ、その後にレプリケーションリポジトリーから宛先クラスターにコピーされます。
- ボリュームの直接移行
- ボリュームはソースクラスターから宛先クラスターに直接コピーされます。
- 間接的な移行よりもはるかに高速。
- イメージの直接移行
- イメージはソースクラスターから宛先クラスターに直接コピーされます。
- 間接的な移行よりもはるかに高速。
- ホストクラスター
-
migration-controllerPod および Web コンソールが実行されるクラスターにログインします。 - 通常、宛先クラスターとローカルクラスターと同じですが、これは必須ではありません。
- 直接のイメージ移行に公開されたセキュアなレジストリールートは不要です。
-
- リモートクラスター
- 通常、ソースクラスターと同じですが、必須ではありません。
- リモートクラスターには、直接のイメージ移行に公開されるセキュアなレジストリールートが必要です。
-
migration-controllerサービスアカウントトークンが含まれるSecretCR が必要です。
9.2.1.2. MigPlan カスタムリソース (CR) の宛先 namespace のマッピング リンクのコピーリンクがクリップボードにコピーされました!
MigPlan CR で宛先の namespace をマッピングした場合には、namespace の UID および GID の範囲が移行時にコピーされるため、namespace が移行元または移行先ホストで複製されないようにする必要があります。
同じ宛先 namespace にマッピングされた 2 つのソース namespace
spec:
namespaces:
- namespace_2
- namespace_1:namespace_2
ソース namespace を同じ名前の namespace にマップする場合には、マッピングを作成する必要はありません。デフォルトでは、ソースの namespace とターゲット namespace の名前は同じです。
誤った namespace マッピング
spec:
namespaces:
- namespace_1:namespace_1
正しい namespace リファレンス
spec:
namespaces:
- namespace_1
9.2.1.3. 段階移行、移行のキャンセル、および移行ロールバック リンクのコピーリンクがクリップボードにコピーされました!
以下のシナリオについて、複数の MigMigration CR を作成して、同じ MigPlan CR に関連付けることができます。
- アプリケーション Pod を停止せずに利用可能なデータをすべてコピーする段階移行を実行する。ステージ移行を実行すると、カットオーバーの時間が短縮されます。
- 実行中の移行を取り消す。
- 完了した移行をロールバックする。
9.2.1.4. イメージの直接移行用のレジストリールートの作成 リンクのコピーリンクがクリップボードにコピーされました!
イメージの直接移行にはすべてのリモートクラスターで公開される内部レジストリーへのルートを作成する必要があります。
前提条件
全リモートクラスターの外部トラフィックに対して内部レジストリーを公開する。
デフォルトで OpenShift Container Platform 4 レジストリーを公開しておく。
OpenShift Container Platform 3 レジストリーを 手動で公開しておく。
手順
OpenShift Container Platform 3 レジストリーへのルートを作成するには、以下のコマンドを実行します。
$ oc create route passthrough --service=docker-registry --port=5000 -n defaultOpenShift Container Platform 4 レジストリーへのルートを作成するには、以下のコマンドを実行します。
$ oc create route passthrough --service=image-registry --port=5000 -n openshift-image-registry