第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 権限を持つユーザーとしてすべてのクラスターにログインしている必要があります。

手順

  1. MigrationController Pod が実行されるクラスターにログインします。
  2. MigrationController CR マニフェストを取得します。

    $ oc get migrationcontroller <migration_controller> -n openshift-migration
  3. 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>
  4. マニフェストを migration-controller.yaml として保存します。
  5. 更新したマニフェストを適用します。

    $ oc replace -f migration-controller.yaml -n openshift-migration