インストール、ハードウェア、オペレーティング システムの前提条件を満たすのに加えて、ベアメタル版 Anthos クラスタを実行するための Google Cloud プロジェクト、API、サービス アカウントを設定、セットアップする必要もあります。
なお、bmctl
コマンドにより、クラスタの作成時にサービス アカウントと API が自動的に有効になりますが、オペレーションをより詳細に制御するために、これらのサービスを手動で設定することもできます。
始める前に
Google Cloud プロジェクトと請求先アカウントを作成します。
インストール時には、次の認証情報を指定する必要があります。
- クラスタノード マシンへのアクセスに必要な秘密 SSH 認証鍵。
root
を使用していない場合は、クラスタのノードマシンのログイン名になります。
ベアメタル版 Anthos クラスタをインストールする前に、必要な認証情報がすべて揃っていることをご確認ください。
gcloud にログインする
gcloud auth application-default
ログインを使用して、ユーザーとして gcloud にログインします。- サービス アカウント管理者
- サービス アカウント キー管理者
- プロジェクト IAM 管理者
- Compute 閲覧者
- Service Usage 管理者
- クラスタ作成に使用する Google CCloud プロジェクト ID を取得します。
gcloud auth application-default login
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
デフォルトの Cloud プロジェクト ID とロールを設定する
サービス アカウントの構成に加えて、デフォルトの project id
を設定できます。
ベアメタル版 Anthos クラスタについては、プロジェクトで owner
または editor
のロールが必要です。
デフォルト プロジェクトを設定するには、次のコマンドを実行します。このとき PROJECT_ID を Google Cloud プロジェクト ID に置き換えます。
gcloud config set project PROJECT_ID
API を有効にする
Anthos clusters on bare metal をインストールする前に、関連する Google Cloud プロジェクトで複数の API を有効にする必要があります。プロジェクトで API を有効にするには、Cloud プロジェクトで roles/owner
、roles/editor
、または roles/serviceusage.serviceUsageAdmin
のいずれかのロールが付与されている必要があります。
詳細については、単一ロールの付与をご覧ください。
必要な IAM 権限を取得したら、次の API を有効にします。
anthos.googleapis.com
anthosaudit.googleapis.com
anthosgke.googleapis.com
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
iam.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
serviceusage.googleapis.com
stackdriver.googleapis.com
また、bmctl
ツールを使用して、これらのサービスを有効にすることもできます。
サービス アカウントの手動での構成
ベアメタル版 Anthos クラスタの bmctl
コマンドでは、クラスタの作成時に Google サービス アカウントと API を自動的に設定できます。
ただし、システムを詳細に管理したい場合や、サービス、アカウント、プロジェクトのデフォルト設定でクラスタ作成を効率化する場合は、これらのサービスを手動で設定できます。
本番環境では、目的ごとに別のサービス アカウントを作成する必要があります。Anthos clusters on bare metal には、目的に応じて、次の別の種類の Google Cloud サービス アカウントが必要です。
- Container Registry(
gcr.io
)にアクセスする際、特別なロールは必要ありません。 - フリートにクラスタを登録するには、Google Cloud プロジェクトのサービス アカウントに
roles/gkehub.admin
IAM ロールを付与します。 - フリートに接続するには、Google Cloud プロジェクトのサービス アカウントに
roles/gkehub.connect
IAM ロールを付与します。 Google Cloud のオペレーション スイートにログと指標を送信するには、Google Cloud プロジェクトのサービス アカウントに次の IAM ロールを付与します。
roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/monitoring.dashboardEditor
roles/opsconfigmonitoring.resourceMetadata.writer
ベアメタル版 Anthos クラスタは、クラスタを Google Cloud に接続します。この接続により、次の機能が有効になります。
- コネクトを使用して、ベアメタル クラスタを Google Cloud に接続します。これにより、クラスタと、統合されたユーザー インターフェースである Cloud Console などのワークロード管理機能にアクセスして、クラスタを操作できます。
- Logging と Monitoring を使用して、Cloud Console にクラスタのログと指標を表示します。
- Cloud Storage バケットにクラスタ スナップショットを自動アップロードします。
アクセスを手動で構成するプロセスは次のとおりです。
- クラウド プロジェクトで必要な Google サービスを有効にします。
- 必要なロールを持つ次のサービス アカウントを作成する。
- connect-agent サービス アカウント: コネクトでこのサービス アカウントを使用してクラスタと Google Cloud の間の接続を維持します。
- connect-registe サービス アカウント: コネクトでこのサービス アカウントを使用して、Google Cloud にクラスタを登録します。
- logging-monitorin サービス アカウント: コネクトでこのサービス アカウントを使用して、クラスタから Logging と Monitoring にログと指標をエクスポートします。
- storage-agent サービス アカウント:
bmctl
でこのサービス アカウントを使用して、クラスタのスナップショットを Cloud Storage に自動的に保存します。
- 各サービス アカウントの 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 \ --project=PROJECT_ID \ --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
- 必要なロールを持つ connect-register サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、
connect-register.json
キーファイルをbaremetal
ディレクトリに作成します。- サービス アカウントの作成
- 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 \ --project=PROJECT_ID \ --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com
gcloud services enable --project=PROJECT_ID \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com
ログの監査とプロジェクトのモニタリングを行うようにサービス アカウントを構成する
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 \ --project=PROJECT_ID \ --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com
Cloud Storage バケットにアクセスできるサービス アカウントを構成する
Cloud Storage にアクセスするには、サービス アカウントとキーファイルを使用します。このサービス アカウントを使用して、クラスタのスナップショットを Cloud Storage バケットに自動的にアップロードできます。または、Anthos VM ランタイムで使用する Cloud Storage バケットから仮想マシン(VM)イメージをインポートすることもできます。
サービス アカウントとキーファイルを作成するには、次の手順を行います。
baremetal
ディレクトリ内にいることを確認します。- クラウド プロジェクトで必要な Google サービスを有効にします。
- クラスタが Cloud Storage バケットへのアクセスに使用できるサービス アカウントを作成します。
- サービス アカウントがデータを Cloud Storage バケットにアップロードすることや、VM イメージをインポートすることができるように、サービス アカウントに
storage.admin
ロールを付与します。 - サービス アカウントの JSON キーファイルをダウンロードします。
gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
gcloud iam service-accounts create storage-agent-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.admin"
gcloud iam service-accounts keys create storage-agent.json \ --iam-account=storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
クラスタ スナップショットを作成して Cloud Storage バケットに自動的にアップロードする方法について詳しくは、クラスタの問題の診断に役立つスナップショットの作成をご覧ください。
Cloud Storage から VM イメージをインポートする方法の詳細については、認証情報を作成して使用し、Cloud Storage for Anthos VM ランタイムからイメージをインポートするをご覧ください。