データ リポジトリを定義する

移行プロセスの一環として、さまざまなデータ リポジトリに情報が書き込まれます。

  • イメージ移行インテントでは、移行された VM ディスクを含む Docker イメージ ファイルが Docker レジストリに書き込まれます。Data Intent を使用して移行する場合、このリポジトリは不要です。
  • 移行されたワークロードを表す移行アーティファクトが 2 つ目のリポジトリに書き込まれます。アーティファクトには、移行されたワークロードのデプロイに使用できる構成 YAML ファイルなどのファイルが含まれます。

リポジトリのステータスを表示する

インストール後、migctl doctor コマンドを実行してインストールを確認できます。migctl doctor コマンドは、この検証の一環としてリポジトリのステータスを確認します。

migctl doctor

次の migctl doctor コマンドの出力例で、チェックマークは Migrate が正常にデプロイされたものの、必要なデータ リポジトリがまだ構成されていないことを示しています。

  [✓] Deployment
  [!] Docker Registry
  [!] Artifacts Repo
  [!] Source Status

リポジトリを構成した後に migctl doctor コマンドをもう一度実行すると、リポジトリが正しく構成されていることを確認できます。

  [✓] Deployment
  [✓] Docker registry
  [✓] Artifacts repo
  [!] Source Status

リポジトリの場所

データ リポジトリの場所は、移行のパフォーマンスとコストに影響する可能性があります。たとえば、イメージ インテント移行の場合、VM のディスクのコピーを含む containerDisk Docker イメージが大きくなることがあります。この Docker イメージを Google Cloud の Container Registry に書き込むと、データ アップロードのパフォーマンス レイテンシと、そのデータの保存コストが発生します。ベアメタル版 Anthos クラスタに対してローカルな Docker レジストリを定義する方が効率的な場合があります。

TLS サポート

一部のリポジトリには、TLS / SSL を使用して HTTPS 経由でアクセスできます。リポジトリへの HTTPS 接続で自己署名証明書を使用する場合は、リポジトリを構成するときに次のいずれかの証明書を含む PEM ファイルを渡す必要があります。

  • 自己署名証明書の公開鍵
  • ルート証明書とすべての中間証明書から実際のサーバー証明書までの連結

Docker レジストリを構成する

migctl コマンドを使用して、Docker レジストリを構成します。migctl コマンドを使用すると、レジストリ構成に対して次の操作を行えます。

  • 作成
  • 更新
  • 削除
  • リスト
  • デフォルトを設定

複数のレジストリを定義できます。デフォルトを含む定義されたレジストリを表示するには、migctl docker-registry list コマンドを使用します。migctl docker-registry set-default コマンドを使用して、デフォルトのレジストリを設定します。次の例は、GCR Docker レジストリを構成する方法を示しています。

migctl docker-registry create gcr REGISTRY_NAME --project <project-id> --json-key=key.json

次のように置き換えます。

  • REGISTRY_NAME は、Docker レジストリ構成のユーザー定義名です。
  • PROJECT_ID は、Google プロジェクト ID です。
  • KEY.JSON は、サービス アカウントの構成の説明に沿って、Container Registry と Cloud Storage にアクセスするためのサービス アカウントの JSON キーファイルの名前です。

後でレジストリ構成を更新するには、作成に使用したものと同じ引数で migctl docker-registry update コマンドを実行します。

migctl docker-registry update gcr <registry-name> <same-flags-as-create>

Docker レジストリを構成すると、そのレジストリがデフォルトのレジストリになります。ただし、複数のレジストリが定義されることもあります。レジストリの最新リストを表示するには:

migctl docker-registry list

デフォルトのレジストリ構成を設定するには、次のコマンドを使用します。

migctl docker-registry set-default <registry-name>

レジストリ構成を削除するには:

migctl docker-registry delete <registry-name>

アーティファクト リポジトリを構成する

migctl コマンドを使用して、アーティファクト リポジトリを構成します。migctl コマンドを使用すると、リポジトリ構成に対して次の操作を行えます。

  • 作成
  • 更新
  • 削除
  • リスト
  • デフォルトを設定

複数のリポジトリを定義できます。Migrate は、現在デフォルトとして定義されている構成を使用します。migctl artifacts-repo list コマンドを使用して、デフォルトの構成を含む現在の構成を表示します。migctl artifacts-repo set-default コマンドを使用してデフォルト構成を設定します。

次の例は、Google Cloud Storage 上にアーティファクト リポジトリを構成する方法を示しています。

migctl artifacts-repo create gcs <repository-name> --bucket-name <bucket-name> --json-key=key.json

ここで

  • repository-name は、アーティファクト リポジトリ構成のユーザー定義名です。
  • bucket-name は、Cloud Storage リポジトリ内の既存のバケットを指定します。既存のバケットがない場合は、ストレージ バケットの作成の手順に沿ってバケットを作成します。注: Migrate をインストールすると、インストーラによって GCP_PROJECT-migration-artifacts という名前のデフォルト バケットが自動的に作成されます。ここでは、次のようになります。

後でリポジトリ構成を更新するには、作成に使用したものと同じ引数で migctl artifacts-repo update コマンドを実行します。

migctl artifacts-repo update gcs <repository-name> <same-flags-as-create>

アーティファクト リポジトリを構成すると、これがデフォルトのリポジトリになります。ただし、複数のリポジトリが定義されることもあります。リポジトリの最新リストを表示するには:

migctl artifacts-repo list

デフォルトのリポジトリ構成を設定するには、次のコマンドを使用します。

migctl artifacts-repo set-default <repository-name>

リポジトリ構成を削除するには:

migctl artifacts-repo delete <repository-name>