生成されたデプロイ ファイルの確認

処理クラスタを使用してワークロードの移行を完了したら、移行の一部として生成された YAML ファイルをダウンロードします。

これらのファイルは移行アーティファクトと呼ばれ、移行したワークロード コンテナを別のクラスタ(テストクラスタや本番環境クラスタなど)にデプロイするため生成されています。

このトピックでは、生成されたファイルをダウンロードして、別のクラスタで使用するための確認を行う方法について説明します。

始める前に

  • まず移行を作成し、移行を実行しておく必要があります。

  • ダウンロードを行うユーザーに、アーティファクト リポジトリへの読み取りアクセス権が付与されていることを確認します。詳細については、データ リポジトリの定義をご覧ください。

生成されたアーティファクト ファイルについて

移行中に次のアーティファクト ファイルが生成されます。

  • deployment_spec.yaml -- ワークロードを構成する YAML ファイル。

    このファイルと kubectl apply を使用して、本番環境クラスタやテストクラスタなどの他のクラスタにワークロードをデプロイできます。

  • Dockerfile -- 移行された VM のイメージのビルドに使用される Dockerfile。

  • blocklist.yaml - 移行プランの設定に基づいて無効にするコンテナ サービスのリスト。サービスリストのカスタマイズをご覧ください。

  • migration.yaml -- 移行計画のコピー。

    このファイルを使用して、移行の一部として行われた操作を確認できます。

以下では、これらのファイルについて詳しく説明します。

すべてのアーティファクト ファイルをダウンロードする

migctl

移行の完了後、ステータスをリクエストすると以下のようなメッセージが表示されます。

migctl migration status my-migration

NAME            CURRENT-OPERATION       PROGRESS        STEP            STATUS    AGE
my-migration    GenerateArtifacts       [1/1]           ExtractImage    Completed 14m23s

移行が完了したら、migctl migration get-artifacts を使用して、生成されたすべてのアーティファクト ファイルをダウンロードします。

migctl migration get-artifacts my-migration

Console

移行が完了すると、移行の [ステータス] 列に [アーティファクトの生成完了] と表示されます。すべての移行アーティファクトをダウンロードするには:

  1. Cloud Console で Migrate for Anthos ページを開きます。

    [コンテナへの移行] ページに移動

  2. [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。

  3. 目的の移行の行で移行の [名前] をクリックします。VM の移行の [詳細] タブが開きます。

  4. [アーティファクト] タブを選択します。

  5. [Docker ファイル、デプロイメントの仕様、その他のアーティファクト] を選択して、アーティファクトを含む Cloud Storage バケットを開きます。

  6. すべてのファイルを選択し、[ダウンロード] を選択します。

CRD

移行が完了したら、次の手順ですべての移行アーティファクトをダウンロードします。

  1. アーティファクトを含む Cloud Storageバケットを取得します。

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system my-migration -o jsonpath={.status.artifacts.deploymentFiles.bucket}

    このコマンドは、バケット名を次の形式で返します。

    bucket-migration-artifacts
  2. Cloud Storage の移行マニフェスト YAML ファイルを取得します。

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system my-migration -o jsonpath={.status.artifacts.deploymentFiles.artifactsManifestFile}

    このコマンドは、マニフェスト YAML ファイル名を次の形式で返します。

    bucket-migration-artifacts/v2k-system-my-migration/ID/manifest.yaml
  3. Cloud Console で Cloud Storage に移動し、マニフェスト ファイルを取得します。次のマニフェスト ファイルの例には、artifacts URL が含まれています。

    artifacts:
     - https:/storage.cloud.google.com/bucket-name/v2k-system-my-migration/ID/deployment_spec.yaml
     - https:/storage.cloud.google.com/bucket-name/v2k-system-my-migration/ID/Dockerfile
     - https:/storage.cloud.google.com/bucket-name/v2k-system-my-migration/ID/migration.yaml
    imageUrl: gcr.io/velos-auto-1/matanvm:v1.0.0
    name: m1-84xqp
    namespace: v2k-system
    uid: daf762-d9-42-bfc-47b71255a
    version: "1.0"
  4. ブラウザで artifacts URL を開き、アーティファクトをダウンロードします。

deployment_spec.yaml

このファイルは、テストクラスタや本番環境クラスタなどの別のクラスタにワークロードをデプロイするために使用できる YAML ファイルです。ファイルの内容は、migctl migration create コマンドの intent フラグで作成した移行の種類によって異なります。

インテント値 状態 出力結果
Image ステートレス

YAML ファイルがステートレス アプリケーションを定義します。その Pod は同一であり、Service として管理されます。

  • Deployment -- 移行された VM から生成されたイメージからデプロイされた、Container Registry に保存されている一連の同一の Pod を表します。
  • Service -- Deployment 内の Pod を、安定した IP アドレスからアクセス可能な単一のリソースにグループ化します。

    これは、確認を行うための推奨設定です。デフォルトでは、この Service 仕様には負荷分散が含まれません。クラスタ内からのみ到達可能な単一クラスタの内部 IP が含まれます。Kubernetes エンドポイント コントローラは DNS 構成を変更して、Pod を指すレコード(アドレス)を返します。これは、"app": "app-name" としてラベル付けされます。

    Kubernetes の外部で Pod を公開するように Service を変更できます。

  • Logging configuration -- 最も一般的なログファイルの多くを一覧表示して、Cloud Logging にロギングを構成します。ログの下に独自のエントリを追加することで、Cloud Logging に含める他のログファイルを追加できます。
ImageAndData ステートフル

YAML ファイルがステートフル アプリケーションを定義します。各 Pod は永続ボリュームに一意に関連付けられています。

  • StatefulSet -- 移行された VM から生成されたイメージからデプロイされた、Container Registry に保存されている一連の Pod を表します。
  • Service -- StatefulSet 内の Pod を、安定した IP アドレスからアクセス可能な単一のリソースにグループ化します。

    これは、確認を行うための推奨設定です。デフォルトでは、この Service 仕様には負荷分散が含まれません。クラスタ内からのみ到達可能な単一クラスタの内部 IP が含まれます。Kubernetes エンドポイント コントローラは DNS 構成を変更して、Pod を指すレコード(アドレス)を返します。これは、"app": "[appName]" としてラベル付けされます。

    Kubernetes の外部で Pod を公開するように Service を変更できます。

  • PersistentVolume -- デフォルトで Compute Engine 永続ディスクによってサポートされた、耐久性の高いストレージを管理するためのリソース。
  • PersistentVolumeClaim -- PersistentVolume リソースに対するリクエスト(要求)を表します。PersistentVolumeClaim オブジェクトは、PersistentVolume の具体的なサイズとアクセスモードをリクエストします。
  • Logging configuration -- 最も一般的なログファイルの多くを一覧表示して、Cloud Logging にロギングを構成します。ログの下に独自のエントリを追加することで、Cloud Logging に含める他のログファイルを追加できます。
Data なし。

はじめに

  • PersistentVolume -- デフォルトで Compute Engine 永続ディスクによってサポートされた、耐久性の高いストレージを管理するためのリソース。
  • PersistentVolumeClaim -- PersistentVolume リソースに対するリクエスト(要求)を表します。PersistentVolumeClaim オブジェクトは、PersistentVolume の具体的なサイズとアクセスモードをリクエストします。

Dockerfile

移行された VM のイメージのビルドに使用される Dockerfile。

新しいバージョンのイメージを生成する必要がある場合は、このファイルを使用します。たとえば、パッケージをインストールして後で新しいイメージをキャプチャする場合などです。イメージの再構築は、Migrate for Anthos が(バグ修正などで)アップグレードされた際に、新しい Migrate for Anthos ランタイムでイメージを再構築するときにも役立ちます。アップグレードされたランタイムは Container Registry で利用できます。

他の Dockerfile の場合と同様に、このファイルを編集してイメージをカスタマイズできます。ヒントについては、Dockerfile を作成する際のベスト プラクティスを参照してください。また、Dockerfile の編集については、移行後のイメージの更新をご覧ください。

# Please refer to the documentation:
# https://cloud.google.com/migrate/anthos/docs/dockerfile-reference

# Image containing data captured from the source VM
FROM gcr.io/my-project/my-vm-instance-1-non-runnable-base:v1.0.0 as source-content

# If you want to update parts of your image, add you commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
#       package1=version \
#       package2=version \
#       package3=version
# RUN yum update
# RUN wget http://github.com

FROM gcr.io/my-project/v2k-run-embedded:v1.5.0 as migrate-for-anthos-runtime

COPY --from=source-content / /

# Migrate for Anthos image includes entrypoint
ENTRYPOINT [ "/.v2k.go" ]

migration.yaml

このファイルは、作成した移行のコピーです。このファイルを使用して、Migrate for Anthos が使用している移行の詳細が、移行計画で指定したものと一致することを確認します。

このファイルを使用して移行を再実行しないでください。移行の実行後は、(migctl migration delete または Google Cloud Console で)移行を削除し、移行計画から再び実行した後のみに再実行できます。

blocklist.yaml

このファイルには、移行計画の設定に基づいて無効にするコンテナ サービスが一覧表示されます。このファイルの使用方法について詳しくは、サービスリストのカスタマイズをご覧ください。

次のステップ