複数の Google Cloud プロジェクトの使用

このドキュメントでは、1 つ以上の Google Cloud プロジェクトを VMware 上の GKE Enterprise クラスタに関連付ける方法について説明します。

ここでは手順全体を詳しく解説します。Google Cloud プロジェクトの使用に関する概要については、最小限のインフラストラクチャを設定するをご覧ください。

準備

Google Cloud CLI をインストールする

フリート ホスト プロジェクト

すべての管理クラスタは、フリートに登録されている必要があります。また、管理クラスタによって管理されるすべてのユーザー クラスタが、管理クラスタと同じフリートに登録されている必要があります。

管理クラスタまたはユーザー クラスタがフリートに登録されると、フリート ホスト プロジェクトに関連付けられます。管理クラスタと管理クラスタが管理するすべてのユーザー クラスタは、同じフリート ホスト プロジェクトを持ちます。Google Cloud コンソールのフリート ホスト プロジェクトでは、管理クラスタとユーザー クラスタを表示して管理できます。

管理クラスタのフリートホスト プロジェクトを指定するには、管理クラスタ構成ファイルgkeConnect.projectID フィールドにプロジェクト ID を入力します。

gkectl コマンドライン ツールを使用してユーザー クラスタを作成する場合は、ユーザー クラスタ構成ファイルgkeConnect.projectID フィールドにプロジェクト ID を入力します。

Google Cloud コンソールを使用してユーザー クラスタを作成すると、現在の Google Cloud プロジェクトが自動的にフリートホスト プロジェクトになります。

フリート ホスト プロジェクトで API を有効にする

Linux / macOS

フリート ホスト プロジェクトで必要な API を有効にするには:

gcloud services enable --project FLEET_HOST_PROJECT_ID \
    anthos.googleapis.com \
    container.googleapis.com \
    gkehub.googleapis.com \
    gkeconnect.googleapis.com \
    connectgateway.googleapis.com \
    stackdriver.googleapis.com \
    monitoring.googleapis.com \
    logging.googleapis.com \
    opsconfigmonitoring.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

Google Cloud コンソール、Google Cloud CLI、または Terraform でユーザー クラスタのライフサイクルを管理する場合は、フリートホスト プロジェクトで次の追加の API を有効にします。

gcloud services enable --project FLEET_HOST_PROJECT_ID \
    gkeonprem.googleapis.com \
    anthosaudit.googleapis.com \
    storage.googleapis.com

ウィンドウ

フリート ホスト プロジェクトで必要な API を有効にするには:

gcloud services enable --project FLEET_HOST_PROJECT_ID ^
    anthos.googleapis.com ^
    container.googleapis.com ^
    gkehub.googleapis.com ^
    gkeconnect.googleapis.com ^
    connectgateway.googleapis.com ^
    stackdriver.googleapis.com ^
    monitoring.googleapis.com ^
    logging.googleapis.com ^
    opsconfigmonitoring.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

Google Cloud コンソール、Google Cloud CLI、または Terraform でユーザー クラスタのライフサイクルを管理する場合は、フリートホスト プロジェクトで次の追加の API を有効にします。

gcloud services enable --project FLEET_HOST_PROJECT_ID ^
    gkeonprem.googleapis.com ^
    anthosaudit.googleapis.com ^
    storage.googleapis.com

フリートホスト プロジェクトのログと指標を表示する

Google Cloud コンソールでクラスタのログと指標を表示するには、管理ユーザーのクラスタ構成ファイルの stackdriver.projectID フィールドにフリート ホスト プロジェクトの ID を入力します。

デフォルトでは、stackdriver セクションは必須です。つまり、stackdriver セクションを設定しない場合、gkectl create を実行する際に --skip-validation-stackdriver フラグを含める必要があります。

stackdriver.projectID フィールドには他のプロジェクト ID を入力できません。値を入力する場合は、フリート ホスト プロジェクトの ID である必要があります。

Google Cloud コンソールでクラスタログと指標を表示する場合は、フリート ホスト プロジェクトで次の API を有効にします。

Linux / macOS

gcloud services enable --project FLEET_HOST_PROJECT_ID \
    stackdriver.googleapis.com \
    monitoring.googleapis.com \
    logging.googleapis.com \
    opsconfigmonitoring.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

Windows

gcloud services enable --project FLEET_HOST_PROJECT_ID ^
    stackdriver.googleapis.com ^
    monitoring.googleapis.com ^
    logging.googleapis.com ^
    opsconfigmonitoring.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

フリート ホスト プロジェクトの監査ログを表示する

Google Cloud コンソールで監査ログを表示するには、管理ユーザーのクラスタ構成ファイルの cloudAuditLogging.projectID フィールドにフリート ホスト プロジェクトの ID を入力します。

cloudAuditLogging.projectID フィールドには他のプロジェクト ID 入を力できません。値を入力する場合は、フリート ホスト プロジェクトの ID である必要があります。

Google Cloud コンソールで監査ログを表示する場合は、フリート ホスト プロジェクトで次の API を有効にします。

Linux / macOS

gcloud services enable --project FLEET_HOST_PROJECT_ID \
    anthosaudit.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

Windows

gcloud services enable --project FLEET_HOST_PROJECT_ID ^
    anthosaudit.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

フリート ホスト プロジェクトのサービス アカウントにロールを付与する

connect-register サービス アカウントには、フリート ホスト プロジェクトに対する特定のロールを付与する必要があります。詳しくは、Connect-register サービス アカウントをご覧ください。

logging-monitoring サービス アカウントには、フリート ホスト プロジェクトに対する特定のロールが付与されている必要があります。詳細については、logging-monitoring サービス アカウントをご覧ください。

監査ロギング サービス アカウントには、フリートホスト プロジェクトに対する特定のロールが付与されている必要があります。詳しくは、監査ロギング サービス アカウントをご覧ください。

使用状況測定プロジェクト

ユーザー クラスタで GKE 使用状況測定を有効にすると、GKE on VMware は、任意の Google Cloud プロジェクトに関連付けられている BigQuery データセットに使用状況データを保存します。この Google Cloud プロジェクトは、使用状況測定プロジェクトと呼ばれます。

使用状況測定プロジェクトは、フリートホスト プロジェクトと同じにすることも、別のものにすることもできます。

使用状況測定を有効にするには、ユーザー クラスタ構成ファイルで、usageMetering.bigQueryProjectID を使用状況測定プロジェクトの ID に設定します。

使用状況測定を有効にする場合は、使用状況測定プロジェクトで次の API を有効にします。

Linux / macOS

gcloud services enable --project USAGE_METERING_PROJECT_ID] \
    bigquery.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

Windows

gcloud services enable --project USAGE_METERING_PROJECT_ID ^
    bigquery.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

使用状況測定プロジェクトのサービス アカウントにロールを付与する

使用状況測定サービス アカウントには、使用状況測定プロジェクトに対する特定のロールが付与されている必要があります。

詳しくは、使用状況測定サービス アカウントをご覧ください。

コンポーネント アクセス サービス アカウントの親プロジェクト

クラスタを作成するためには、GKE on VMware が Container Registry からコンポーネントをダウンロードするために使用できるサービス アカウントが必要です。このサービス アカウントは、コンポーネント アクセス サービス アカウントと呼ばれます。

コンポーネント アクセス サービス アカウントを作成した Google Cloud プロジェクトは、コンポーネント アクセス サービス アカウントの親と呼ばれます。このプロジェクトは、クラスタ構成ファイルで指定したプロジェクトの 1 つと同じプロジェクトにできます。もしくは、構成ファイルで指定したすべてのプロジェクトと異なったものにすることもできます。サービス アカウントと親プロジェクトの詳細については、サービス アカウントと Google Cloud プロジェクトについてをご覧ください。

コンポーネント アクセス サービス アカウントの親プロジェクトで必要な API を有効にするには:

Linux / macOS

gcloud services enable --project [PROJECT_ID] \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

ここで、[PROJECT_ID] はコンポーネント アクセス サービス アカウントの親プロジェクトの ID です。

Windows

gcloud services enable --project [PROJECT_ID] ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

ここで、[PROJECT_ID] はコンポーネント アクセス サービス アカウントの親プロジェクトの ID です。

次のステップ

サービス アカウントとキーを作成します