第8章 アプリケーションの移行
MTC (Migration Toolkit for Containers) の Web コンソールまたはコマンドラインでアプリケーションを移行できます。
8.1. 移行の前提条件
-
cluster-admin
権限を持つユーザーとしてすべてのクラスターにログインしている必要があります。
イメージの直接移行
- ソースクラスターのセキュアな内部レジストリーが公開されている必要があります。
- 公開されるレジストリーへのルートを作成しておく必要があります。
ボリュームの直接移行
- クラスターがプロキシーを使用する場合に Stunnel TCP プロキシーを設定している必要があります。
クラスター
- ソースクラスターは、最新の z-stream リリースにアップグレードされる必要があります。
- MTC のバージョンは、すべてのクラスターで同一である必要があります。
ネットワーク
- クラスターには、レプリケーションリポジトリーに対して、また各クラスター間で無制限のネットワークアクセスが必要です。
-
move
を使用して永続ボリュームをコピーする場合、クラスターにはリモートボリュームへの無制限のネットワークアクセスが必要です。 OpenShift Container Platform 4 クラスターで以下のポートを有効にする必要があります。
-
6443
(API サーバー) -
443
(ルート) -
53
(DNS)
-
-
TLS を使用している場合は、レプリケーションリポジトリーでポート
443
を有効にする必要があります。
永続ボリューム (PV)
- PV は有効である必要があります。
- PV は永続ボリューム要求にバインドされる必要があります。
スナップショットを使用して PV をコピーする場合には、以下の前提条件が追加されます。
- クラウドプロバイダーはスナップショットをサポートしている必要があります。
- PV に同じクラウドプロバイダーがなければなりません。
- PV は同じ地理的リージョンにある必要があります。
- PV には同じストレージクラスがなければなりません。
移行の前提条件に関する他のリソース
8.1.1. ボリュームの直接移行のための Stunnel プロキシー設定
プロキシーの背後にあるソースクラスターからボリュームの直接移行を実行している場合、MigrationController
カスタムリソース (CR) で Stunnel プロキシーを設定する必要があります。Stunnel は、証明書を変更せずに、TCP 接続のソースクラスターとターゲットクラスター間に透過的なトンネルを作成します。
注記
ボリュームの直接移行は 1 つのプロキシーのみをサポートします。ターゲットクラスターもプロキシーの背後にある場合、ソースクラスターはターゲットクラスターのルートにアクセスできません。
前提条件
-
cluster-admin
権限を持つユーザーとしてすべてのクラスターにログインしている必要があります。
手順
-
MigrationController
Pod が実行されるクラスターにログインします。 MigrationController
CR マニフェストを取得します。$ oc get migrationcontroller <migration_controller> -n openshift-migration
stunnel_tcp_proxy
パラメーターを追加します。apiVersion: migration.openshift.io/v1alpha1 kind: MigrationController metadata: name: <migration-controller> namespace: openshift-migration ... spec: stunnel_tcp_proxy: <stunnel_proxy> 1
- 1
- Stunnel プロキシーを指定します:
http://<user>:<password>@<ip_address>:<port>
-
マニフェストを
migration-controller.yaml
として保存します。 更新したマニフェストを適用します。
$ oc replace -f migration-controller.yaml -n openshift-migration