インストール、ハードウェア、オペレーティング システムの前提条件を満たすのに加えて、ベアメタル版 Anthos クラスタを実行するための Google Cloud プロジェクト、API、サービス アカウントを設定、セットアップする必要もあります。
なお、bmctl
コマンドにより、クラスタの作成時にサービス アカウントと API が自動的に有効になりますが、オペレーションをより詳細に制御するために、これらのサービスを手動で設定することもできます。
API を有効にしています
プロジェクトで API を有効にするには、アカウントに roles/owner
、roles/editor
、roles/serviceusage.serviceUsageAdmin
のいずれかのロールが割り当てられている必要があります。
詳細については、単一ロールの付与をご覧ください。
デフォルトの Google Cloud プロジェクト ID とロールの設定
サービス アカウントの構成に加えて、デフォルトの project id
を設定できます。
ベアメタル版 Anthos クラスタについては、プロジェクトで owner
または editor
のロールが必要です。
デフォルト プロジェクトを設定するには、次のコマンドを実行します。このとき PROJECT_ID を Google Cloud プロジェクト ID に置き換えます。
gcloud config set project PROJECT_ID
サービス アカウントの手動での構成
ベアメタル版 Anthos クラスタの bmctl
コマンドでは、クラスタの作成時に Google サービス アカウントと API を自動的に設定できます。
ただし、システムを詳細に管理したい場合や、サービス、アカウント、プロジェクトのデフォルト設定でクラスタ作成を効率化する場合は、これらのサービスを手動で設定できます。
ベアメタル版 Anthos クラスタは、クラスタを Google Cloud に接続します。この接続では、次の機能を使用して Cloud Console からクラスタを管理および監視できます。
- コネクトを使用して、ベアメタル クラスタを Google Cloud に接続します。これにより、クラスタと、統合されたユーザー インターフェースである Cloud Console などのワークロード管理機能にアクセスして、クラスタを操作できます。
- Logging と Monitoring を使用して、Cloud Console にクラスタのログと指標を表示します。
アクセスを手動で構成するプロセスは次のとおりです。
- クラウド プロジェクトで必要な Google サービスを有効にします。
- 必要なロールを持つ次のサービス アカウントを作成する。
- connect-agent サービス アカウント: コネクトでこのサービス アカウントを使用してクラスタと Google Cloud の間の接続を維持します。
- connect-registe サービス アカウント: コネクトでこのサービス アカウントを使用して、Google Cloud にクラスタを登録します。
- logging-monitorin サービス アカウント: コネクトでこのサービス アカウントを使用して、クラスタから Logging と Monitoring にログと指標をエクスポートします。
- 各サービス アカウントの JSON キーファイルをダウンロードします。
その後、適切なクラスタ構成ファイルに JSON キーファイルへの参照を追加します。詳しくは、クラスタの作成: 概要をご覧ください。
コネクトで使用するサービス アカウントの構成
サービス アカウントとキーファイルを作成するには:
baremetal
ディレクトリ内にいることを確認します。- クラウド プロジェクトで必要な Google サービスを有効にします。
- 必要なロールを持つ connect-agent サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、
connect-agent.json
キーファイルをbaremetal
ディレクトリに作成します。- サービス アカウントの作成
- gkehub.connect ロールを付与します。
- サービス アカウントの JSON キーファイルをダウンロードします。
gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect"
gcloud iam service-accounts keys create connect-agent.json \ --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
- 必要なロールを持つ connect-register サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、
baremetal
ディレクトリに connect-register.json
キーファイルを作成します。- サービス アカウントの作成
- gkehub.admin ロールを付与します。
- サービス アカウントの JSON キーファイルをダウンロードします。
gcloud iam service-accounts create connect-register-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin
gcloud iam service-accounts keys create connect-register.json \ --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
gcloud services enable --project=PROJECT_ID \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com
Logging と Monitoring で使用するサービス アカウントの構成
Logging と Monitoring 用のサービス アカウントとキーファイルを作成するには:
baremetal
ディレクトリ内にいることを確認します。- クラウド プロジェクトで必要な Google サービスを有効にします。
- 必要なロールを持つ logging-monitoring サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、
cloud-ops.json
キーファイルをbaremetal
ディレクトリに作成します。 - サービス アカウントの作成
- logging.logWriter ロールの付与
- monitoring.metricWriter ロールの付与
- roles/stackdriver.resourceMetadata.writer ロールの付与
- roles/opsconfigmonitoring.resourceMetadata.writer ロールの付与
- roles/monitoring.dashboardEditor ロールの付与
- サービス アカウントの JSON キーファイルをダウンロードします。
gcloud services enable --project PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ opsconfigmonitoring.googleapis.com
gcloud iam service-accounts create logging-monitoring-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor"
gcloud iam service-accounts keys create cloud-ops.json \ --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID