移行の一環として、Migrate for Anthos はさまざまなデータ リポジトリに情報を書き込みます。
移行された Linux VM を表す Docker イメージ ファイルが Docker レジストリに書き込まれます。
こうした Docker イメージ ファイルは、移行された Linux VM のファイルとディレクトリを表します。このリポジトリは、Windows ワークロードを移行する場合は不要です。
移行されたワークロードを表す移行アーティファクトが 2 つ目のリポジトリに書き込まれます。
アーティファクトには、移行されたワークロードのデプロイに使用できる構成 YAML ファイルなどのファイルが含まれます。正確なアーティファクトは、Linux ワークロードと Windows ワークロードのどちらを移行するかによって異なります。
これらのリポジトリのデフォルトの実装とロケーションは、移行の実行に使用した処理クラスタを作成した場所によって異なります。VMware の Anthos クラスタと AWS の Anthos クラスタにはデフォルトのリポジトリがないため、Migrate for Anthos のインストールの一環として、デフォルトのリポジトリを構成する必要があります。
プラットフォーム | Docker イメージ ファイル レジストリ* | 移行アーティファクト リポジトリ |
---|---|---|
Google Cloud 上の Anthos クラスタ | デフォルトは Google Container Registry(GCR)です。 必要に応じて、基本認証をサポートする任意の Docker レジストリを指定します。 |
デフォルトは Google Cloud Storage です。 必要に応じて、Linux 移行のアーティファクト リポジトリとして S3 を指定します。S3 は、Windows ワークロードの移行ではサポートされません。 |
VMware の Anthos クラスタ | デフォルトはありません。 必要に応じて、GCR または基本認証をサポートする任意の Docker レジストリを指定します。 |
デフォルトはありません。 アーティファクト リポジトリとして Cloud Storage または S3 を指定します。 |
AWS 上の Anthos クラスタ | デフォルトはありません。 |
デフォルトはありません。 アーティファクト リポジトリとして Cloud Storage または S3 を指定します。 |
* Windows の移行では、Docker イメージ ファイル レジストリは必要ありません。これは、Linux VM の移行の場合のみ必要です。 |
リポジトリのステータスを表示する
Migrate for Anthos をインストールした後、migctl doctor コマンドを実行して Migrate for Anthos のインストールを検証します。migctl doctor
コマンドは、この検証の一環としてリポジトリのステータスを確認します。
migctl doctor
次の migctl doctor
コマンド出力例では、Migrate for Anthos が正常にデプロイされていることを示すチェックマークがついていますが、必要なデータ リポジトリがまだ構成されていません。
[✓] Deployment [!] Docker Registry [!] Artifacts Repo` [!] Source Status
リポジトリを構成した後に migctl doctor
コマンドをもう一度実行すると、リポジトリが正しく構成されていることを確認できます。
[✓] Deployment [✓] Docker registry [✓] Artifacts repo [!] Source Status
Google Cloud Console のサポート
Google Cloud Console には、リポジトリの実装に基づいて、リポジトリ内のアイテムへの URL が表示されます。たとえば、リポジトリが S3 を使用して実装されている場合、Google Cloud Console にはバケットの URL が S3 で表示されます。
リポジトリの場所に関するオプション
データ リポジトリの場所は、移行のパフォーマンスとコストに影響する可能性があります。
たとえば、移行された VM を表す Docker イメージ ファイルのサイズは、非常に大きくなることがあります。処理クラスタがオンプレミスにあり、Docker イメージ ファイルを Google Cloud の GCR に書き込む場合には、データ アップロードのパフォーマンス レイテンシと、そのデータの保存コストが発生します。
オンプレミス処理クラスタの場合、クラスタに対してローカルな Docker レジストリを定義する方が効率的になる可能性があります。レジストリをローカルにすることで、アップロードのレイテンシとストレージ コストを最小限に抑えることができます。
Google Cloud にデプロイされた GKE クラスタの場合、デフォルトの GCR リポジトリを使用すると最高レベルのパフォーマンスが得られますが、そのストレージに対して課金されます。ですが、クラウドベースのクラスタで GCR を使用する必要はなく、代わりに独自の Docker レジストリを使用することもできます。
リポジトリの認証
Migrate for Anthos で使用されるすべてのリポジトリには認証が必要です。次の表に示すように、この認証メカニズムはリポジトリの種類によって異なります。
リポジトリ | 実装 | 認証 |
---|---|---|
Docker イメージ ファイル レジストリ | GCR | Google Cloud サービス アカウントの JSON キー。 詳細については、Container Registry と Cloud Storage にアクセスするためのサービス アカウントの作成をご覧ください。 |
ECR | アクセスキーとシークレット、または認証ファイル。詳細については、IAM ユーザーのアクセスキーの管理をご覧ください。 | |
Docker レジストリ | 基本認証用のユーザー名とパスワード。 | |
移行アーティファクト リポジトリ | Cloud Storage | Google Cloud サービス アカウントの JSON キー。 詳細については、Container Registry と Cloud Storage にアクセスするためのサービス アカウントの作成をご覧ください。 |
S3 | アクセスキーとシークレット、または認証ファイル。詳細については、アクセス管理の概要をご覧ください。 |
TLS のサポート
一部のリポジトリには、TLS / SSL を使用して HTTPS 経由でアクセスできます。リポジトリへの HTTPS 接続で自己署名証明書を使用する場合は、リポジトリを構成するときに次のいずれかの証明書を含む PEM ファイルを渡す必要があります。
- 自己署名証明書の公開鍵
- ルート証明書とすべての中間証明書から実際のサーバー証明書までの連結
Docker レジストリの構成
migctl
コマンドを使用して、Docker レジストリを構成します。migctl
コマンドを使用すると、レジストリ構成に対して次の操作を行えます。
- 作成
- 更新
- 削除
- リスト
- 既定に設定
構成は複数定義できます。Migrate for Anthos は、現在デフォルトとして定義されている構成を使用します。migctl docker-registry list
コマンドを使用して、デフォルトの構成を含む現在の構成を表示します。migctl docker-registry set-default
コマンドを使用してデフォルト構成を設定します。
次の例は、Docker レジストリを構成する方法を示しています。
GCR
migctl docker-registry create gcr registry-name --project project-id --json-key=m4a-install.json
ここで
registry-name は、Docker レジストリ構成のユーザー定義名です。
project-id は、Google プロジェクト ID です。
m4a-install.json は、サービス アカウントの構成の説明に沿って、Container Registry と Cloud Storage にアクセスするためのサービス アカウントの JSON キーファイルの名前です。
ECR
migctl docker-registry create ecr registry-name --registry-path url --access-key-id=key-id
key-id の秘密鍵の入力を求められます。
または、認証情報ファイルのパスを指定します。
migctl docker-registry create ecr registry-name --registry-path url --credentials-file-path file-path
ここで
registry-name は、Docker レジストリ構成のユーザー定義名です。
url は、
http://
またはhttps://
の接頭辞が付加されていないレジストリパスの URL を指定します。key-id はアクセスキーを指定します。詳細については、IAM ユーザーのアクセスキーの管理をご覧ください。
file-path は、認証情報を含む AWS コンソールからダウンロードされた CSV ファイルへのパスを指定します。CSV ファイルの作成の詳細については、AWS IAM グループとインスタンスのロールの構成をご覧ください。
Docker レジストリ
migctl docker-registry create basic-auth registry-name --registry-path url --username username --ca-pem-file ca-pem-filename
ここで
registry-name は、Docker レジストリ構成のユーザー定義名です。
url は、
http://
またはhttps://
の接頭辞が付加されていないレジストリの URL を指定します。例:localhost:8080/myregistry
。username は、レジストリの基本認証情報です。パスワードを入力するように求められます。
レジストリが自己署名証明書を使用している場合は、ca-pem-filename は公開鍵または完全な CA チェーンのいずれかを含む PEM ファイルを指定します。つまり、中間 CA 証明書からルート証明書までの連結を意味します。例:
cat int1.pem int2.pem ... root.pem
後でレジストリ構成を更新するには、作成に使用したものと同じ引数で 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 for Anthos は、現在デフォルトとして定義されている構成を使用します。migctl artifacts-repo list
コマンドを使用して、デフォルトの構成を含む現在の構成を表示します。migctl artifacts-repo set-default
コマンドを使用してデフォルト構成を設定します。
次の例は、アーティファクト リポジトリの構成方法を示しています。
Cloud Storage
migctl artifacts-repo create gcs repository-name --bucket-name bucket-name --json-key=m4a-install.json
ここで
repository-name は、アーティファクト リポジトリ構成のユーザー定義名です。
bucket-name は、Cloud Storage リポジトリ内の既存のバケットを指定します。既存のバケットがない場合は、ストレージ バケットの作成の手順に沿ってバケットを作成します。
注: Migrate for Anthos を Google Cloud 上のクラスタにインストールすると、Migrate for Anthos インストーラが次の名前のデフォルトのバケットを自動的に作成します。
GCP_PROJECT-migration-artifacts
ここで、GCP_PROJECT は Google プロジェクト ID です。ただし、Migrate for Anthos をオンプレミス処理クラスタまたは AWS の Anthos クラスタにインストールする場合、デフォルト バケットは作成されません。自身で作成する必要があります。
project-id は、Google プロジェクト ID です。
m4a-install.json は、サービス アカウントの構成の説明に沿って、Container Registry と Cloud Storage にアクセスするためのサービス アカウントの JSON キーファイルの名前です。
S3
migctl artifacts-repo create s3 repository-name --bucket-name bucket-name --region aws-region --access-key-id=key-id
key-id の秘密鍵の入力を求められます。
または、認証情報ファイルのパスを指定します。
migctl artifacts-repo create s3 repository-name --bucket-name bucket-name --region aws-region --credentials-file-path file-path
ここで
repository-name は、アーティファクト リポジトリ構成のユーザー定義名です。
bucket-name は、S3 リポジトリ内の既存のバケットを指定します。既存のバケットがない場合は、Amazon S3 バケットの操作の手順に沿ってバケットを作成します。
aws-region は、リポジトリの AWS リージョンを指定します。処理クラスタとリポジトリは、クラスタがリポジトリにアクセスする権限を持っている限り、それぞれを別のリージョンに配置できます。
key-id はアクセスキーを指定します。詳細については、アクセス管理の概要をご覧ください。
file-path は、認証情報を含む AWS コンソールからダウンロードされた CSV ファイルへのパスを指定します。CSV ファイルの作成の詳細については、AWS IAM グループとインスタンスのロールの構成をご覧ください。
後でリポジトリ構成を更新するには、作成に使用したものと同じ引数で migctl docker-registry update
コマンドを実行します。
migctl artifacts-repo update gcr repository-name same-flags-as-create
リポジトリ レジストリを構成すると、そのリポジトリがデフォルトのリポジトリになります。ただし、複数のリポジトリが定義されることもあります。リポジトリの最新リストを表示するには:
migctl artifacts-repo list
デフォルトのリポジトリ構成(現在移行に使用されている構成)を設定するには、次のコマンドを使用します。
migctl artifacts-repo set-default repository-name
リポジトリ構成を削除するには:
migctl artifacts-repo delete repository-name