Cloud Foundry を評価および移行する

このドキュメントでは、既存の Cloud Foundry(CF)Foundation の評価方法と、CF Foundation、組織、Space、アプリの Kf への移行方法について説明します。

移行の適合性の評価

CF Foundation の移行準備状況の評価を含むレポートを生成するには、kf migrate scan-cf-cluster コマンドを使用します。レポートはスプレッドシート(推奨)またはテキスト ファイルとして書式設定できます。

前提条件

評価の実施

  1. ターゲットとする Foundation を検証します。

    cf curl /v2/info
  2. コマンドを実行して、評価レポートを含むスプレッドシートを生成します。

    kf migrate scan-cf-cluster report.xlsx
  3. 評価の内容を確認する

    評価を共有する予定の場合は、共有したくない情報を削除できます。

移行

CF からエンティティを移行するには、次の手順を行います。

  1. 移行について説明する移行計画を作成します。

  2. 移行計画を編集して、移行をカスタマイズします。

  3. 移行計画を適用して、移行を実行します。

以降のセクションでは、これらのステップについて詳しく説明します。

移行スコープ

移行を実行する際に最初に行う作業は、移行スコープの決定です。スコープにより、移行する CF エンティティと、移行の実行に必要な権限が決まります。

  • Foundation 全体または組織: CF Foundation に対する管理者読み取り専用権限か、それ以上の権限が必要です。

  • 単一 Space またはアプリ: Space のデベロッパー権限が必要です。

前提条件

移行を行うには、以下のものが必要です。

  • 移行計画の作成: Kf CLI。インストール手順については、Kf CLI をインストールするをご覧ください。
  • 移行計画の適用: Kf を実行する GKE クラスタ。インストール手順については、Kf をインストールするをご覧ください。
  • Cloud Foundry がインストールされているクラスタに対するアクセス権。
  • CF Foundation をターゲットとする CF CLI。
  • 上述のように、目的の移行スコープで必要な CF Foundation の権限。

移行計画を作成する

kf migrate plan コマンドを使用して移行計画を作成します。

デフォルトでは、移行計画は標準出力に書き出されます。通常は、出力を yaml ファイルにリダイレクトするため、適用前に計画をカスタマイズできます。たとえば、次のコマンドを実行すると、出力が標準出力に書き出されます。

kf migrate plan

出力を yaml ファイルにリダイレクトします。

kf migrate plan > plan.yaml

kf migrate plan コマンドを実行すると、コマンドで実行される手順と警告や移行の問題を含む出力が以下の形式でコマンド ウィンドウに表示されます。

kf migrate plan > plan.yaml

    Checking CF CLI is available
    Checking CF CLI is authenticated
    ...

    WARNING: plan has issues
    Issues with domain "apps.internal" in space "kf-team-acceptance":
        E04 - internal domains are not supported

    Issues with application "spring-music" in space "kf-team-app":
        E14 - app manifest must have a single process

    Issues with service instance "logspinner-1" in space "kf-team-app":
        E10 - syslog drain configuration is not supported
    ...

移行計画を生成する

  1. CF CLI を使用して CF Foundation にログインしていることを確認します。

  2. 必要な移行スコープに基づいて移行を実行します。ここで

    • MY_ORG には、組織の名前を指定します。
    • MY_SPACE には、Space の名前を指定します。
    • MY_APP には、アプリの名前を指定します。
    1. CF Foundation 全体の移行計画を生成します。

      kf migrate plan > plan.yaml
    2. 組織の移行計画を生成します。

      kf migrate plan --cf-org MY_ORG > plan.yaml
    3. Space の移行計画を生成します

      kf migrate plan --cf-org MY_ORG --cf-space MY_SPACE > plan.yaml
    4. アプリの移行計画を生成します。

      kf migrate plan --cf-org MY_ORG --cf-space MY_SPACE --cf-app MY_APP > plan.yaml

これらのコマンドを実行した後に次のエラーが表示された場合:

You are not authorized to perform the requested action CF-NotAuthorized 10003

必要な CAPI エンドポイントを読み取るための権限がありません。

移行計画を編集する

生成された移行計画を確認し、必要に応じて修正してエラーを解決します。

移行計画を適用する

kf migrate apply コマンドを使用して移行計画を適用し、CF エンティティを移行します。

  1. Kf クラスタをターゲットにするように .kubeconfig が設定されていることを確認します。

  2. 完全な Kf がインストールされている GKE クラスタにアクセスできることを確認します。つまり、次のコマンドを実行してクラスタに接続します。

    gcloud container clusters get-credentials CLUSTER_NAME \
       --project=CLUSTER_PROJECT_ID \
       --zone=CLUSTER_LOCATION
  3. 移行計画で参照される Space と競合する Kf クラスタに既存の Space 名がないことを確認します。

    Space 名は cf-org-cf-space の形式になります。たとえば、組織名が myorg で Space 名が myspace の場合、Kf スペースは myorg-myspace になります。

  4. 移行計画を適用します。

    kf migrate apply -v --plan plan.yaml

    必須ではありませんが、詳細フラグ -v の使用をおすすめします。このフラグを使用すると、移行の実行で使用された Kf コマンドが出力されます。