Google サービスとサービス アカウントの有効化

インストール、ハードウェア、オペレーティング システムの前提条件を満たすのに加えて、ベアメタル版 Anthos クラスタを実行するための Google Cloud プロジェクト、API、サービス アカウントを設定、セットアップする必要もあります。

なお、bmctl コマンドにより、クラスタの作成時にサービス アカウントと API が自動的に有効になりますが、オペレーションをより詳細に制御するために、これらのサービスを手動で設定することもできます。

API を有効にしています

プロジェクトで API を有効にするには、アカウントに roles/ownerroles/editorroles/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 などのワークロード管理機能にアクセスして、クラスタを操作できます。
  • LoggingMonitoring を使用して、Cloud Console にクラスタのログと指標を表示します。

アクセスを手動で構成するプロセスは次のとおりです。

  • クラウド プロジェクトで必要な Google サービスを有効にします。
  • 必要なロールを持つ次のサービス アカウントを作成する。
    • connect-agent サービス アカウント: コネクトでこのサービス アカウントを使用してクラスタと Google Cloud の間の接続を維持します。
    • connect-registe サービス アカウント: コネクトでこのサービス アカウントを使用して、Google Cloud にクラスタを登録します。
    • logging-monitorin サービス アカウント: コネクトでこのサービス アカウントを使用して、クラスタから Logging と Monitoring にログと指標をエクスポートします。

  • 各サービス アカウントの JSON キーファイルをダウンロードします。

その後、適切なクラスタ構成ファイルに JSON キーファイルへの参照を追加します。詳しくは、クラスタの作成: 概要をご覧ください。

コネクトで使用するサービス アカウントの構成

サービス アカウントとキーファイルを作成するには:

  1. baremetal ディレクトリ内にいることを確認します。
  2. クラウド プロジェクトで必要な Google サービスを有効にします。
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. 必要なロールを持つ connect-agent サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、connect-agent.json キーファイルを baremetal ディレクトリに作成します。
    1. サービス アカウントの作成
    2. gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
    3. gkehub.connect ロールを付与します。
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/gkehub.connect"
    5. サービス アカウントの JSON キーファイルをダウンロードします。
    6. gcloud iam service-accounts keys create connect-agent.json \
          --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com \
          --project=PROJECT_ID
  5. 必要なロールを持つ connect-register サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、baremetal ディレクトリに connect-register.json キーファイルを作成します。
    1. サービス アカウントの作成
    2. gcloud iam service-accounts create connect-register-svc-account \
          --project=PROJECT_ID
    3. gkehub.admin ロールを付与します。
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. サービス アカウントの JSON キーファイルをダウンロードします。
    6. gcloud iam service-accounts keys create connect-register.json \
          --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com \
          --project=PROJECT_ID

Logging と Monitoring で使用するサービス アカウントの構成

Logging と Monitoring 用のサービス アカウントとキーファイルを作成するには:

  1. baremetal ディレクトリ内にいることを確認します。
  2. クラウド プロジェクトで必要な Google サービスを有効にします。
  3. 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
    
  4. 必要なロールを持つ logging-monitoring サービス アカウントを作成し、キーファイルをダウンロードします。次の手順で、cloud-ops.json キーファイルを baremetal ディレクトリに作成します。
    1. サービス アカウントの作成
    2. gcloud iam service-accounts create logging-monitoring-svc-account \
          --project=PROJECT_ID
      
    3. logging.logWriter ロールの付与
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/logging.logWriter"
      
    5. monitoring.metricWriter ロールの付与
    6. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.metricWriter"
      
    7. roles/stackdriver.resourceMetadata.writer ロールの付与
    8. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/stackdriver.resourceMetadata.writer"
      
    9. roles/opsconfigmonitoring.resourceMetadata.writer ロールの付与
    10. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/opsconfigmonitoring.resourceMetadata.writer"
      
    11. roles/monitoring.dashboardEditor ロールの付与
    12. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.dashboardEditor"
      
    13. サービス アカウントの JSON キーファイルをダウンロードします。
    14. gcloud iam service-accounts keys create cloud-ops.json \
          --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com \
          --project=PROJECT_ID