はじめに

このページでは、環境に GKE On-Prem をインストールする前に行う必要がある手順を説明します。

始める前に

次のトピックを確認します。

GKE On-Prem ドキュメントのプレースホルダ値

GKE On-Prem のドキュメントを使用すると、コードブロック内の placeholder values をクリックすることで変更できます。

Enter your name: [YOUR_NAME]

これはコマンドをコピーして実行する前に、プレースホルダ値を入力することが必要な場合に有用な可能性があります。

制限事項

制約事項 説明
クラスタとノードの上限と下限

割り当てと上限をご覧ください。環境のパフォーマンスがこれらの上限に影響することがあります。

プロジェクトごとに 1 つの管理クラスタ

登録できる管理クラスタは、Google Cloud プロジェクトあたり 1 つのみです。複数の管理クラスタを実行する必要がある場合は、個別の Google Cloud プロジェクトを使用する必要があります。

Google Cloud プロジェクトを作成する

Google Cloud プロジェクトを作成します(まだ作成していない場合)。GKE On-Prem を実行するにはプロジェクトが必要です。

必要なコマンドライン インターフェース ツールをインストールする

  • Google Cloud CLIgcloud を含む)をインストールします。これは、Google Cloud のコマンドライン インターフェース(CLI)です。
  • VMware vSphere への CLI である govc をインストールします。
  • terraform CLI を含む Terraform 0.11 をインストールします。Terraform のインストール手順に従い、インストールを確認して PATH 変数を設定します。

gcloud を承認して Google Cloud にアクセスする

gcloud CLI をインストールしたら、gcloud を承認して Google Cloud にアクセスします。

gcloud auth login

デフォルトの Google Cloud プロジェクトを設定する

デフォルトの Google Cloud を設定すると、すべての gcloud CLI コマンドがプロジェクトに対して実行されるようになります。コマンドごとにプロジェクトを指定する必要はありません。デフォルト プロジェクトを設定するには、次のコマンドを実行します。

gcloud config set project [PROJECT_ID]

[PROJECT_ID] は実際のプロジェクト ID に置き換えます(プロジェクト ID は Google Cloud コンソール で確認できます。または、gcloud config get-value project を実行して確認することもできます)。

Google Cloud サービス アカウントを作成する

GKE On-Prem を初めてインストールする前に、gcloud を使用して 4 つの Google Cloud サービス アカウントを作成します。GKE On-Prem は、これらのサービス アカウントを使用してユーザーに代わってタスクを完了します。以降のセクションでは、各アカウントの目的について説明します。

アクセス サービス アカウント

このサービス アカウントを使用して、Cloud Storage から GKE On-Prem のバイナリをダウンロードします。これは、Google が許可リストに登録する唯一のサービス アカウントです。

次のコマンドを実行して access-service-account を作成します。

gcloud iam service-accounts create access-service-account

登録サービス アカウント

Connect は、このサービス アカウントを使用して GKE On-Prem クラスタを Google Cloud Console に登録します。

次のコマンドを実行して register-service-account を作成します。

gcloud iam service-accounts create register-service-account

接続サービス アカウント

Connect は、このサービス アカウントを使用して GKE On-Prem クラスタと Google Cloud 間の接続を維持します。

次のコマンドを実行して connect-service-account を作成します。

gcloud iam service-accounts create connect-service-account

Google Cloud のオペレーション スイートのサービス アカウント

このサービス アカウントでは、GKE On-Prem が Google Cloud のオペレーション スイートにログデータとモニタリング データを書き込めます。

次のコマンドを実行して stackdriver-service-account を作成します。

gcloud iam service-accounts create stackdriver-service-account

プロジェクトとアカウントを許可リストに登録する

Anthos の購入後、以下の対象が許可リストに登録され、GKE On-Prem および Connect へのアクセス権が付与されます。

  • Google Cloud プロジェクト。
  • Google アカウント、チームメンバーの個別の Google アカウント。
  • アクセス サービス アカウント。

別のプロジェクトやサービス アカウントを使用する場合や、追加ユーザーを有効にする場合は、Google Cloud サポートまたはテクニカル アカウント マネージャーにお問い合わせください。Google Cloud コンソール または Google Cloud サポート センターでサポートケースを開きます。

プロジェクトで必要な API を有効にする

Google Cloud プロジェクトで次の API を有効にする必要があります。

  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com
  • monitoring.googleapis.com
  • logging.googleapis.com

こうした API を有効にするには、次のコマンドを実行します。

gcloud services enable \
cloudresourcemanager.googleapis.com \
container.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
serviceusage.googleapis.com \
stackdriver.googleapis.com \
monitoring.googleapis.com \
logging.googleapis.com

サービス アカウントに Identity and Access Management のロールを割り当てる

IAM は、Google Cloud APIs を呼び出す権限をアカウントに付与します。専用の IAM ロールをこれらのサービス アカウントに割り当てて、権限を分離します。

サービス アカウントのメールアドレスを一覧表示する

まず、Google Cloud プロジェクトのサービス アカウントを一覧表示します。

gcloud iam service-accounts list

my-gcp-project という名前の Google Cloud プロジェクトの場合、このコマンドの出力は次のようになります。

gcloud iam service-accounts list
NAME                                    EMAIL
                                        access-service-account@my-gcp-project.iam.gserviceaccount.com
                                        register-service-account@my-gcp-project.iam.gserviceaccount.com
                                        connect-service-account@my-gcp-project.iam.gserviceaccount.com
                                        stackdriver-service-account@my-gcp-project.iam.gserviceaccount.com

各アカウントのメールアドレスをメモしておきます。以下の各セクションで、関連するアカウントのメール アカウントを指定します。

登録サービス アカウント

gkehub.adminserviceuserage.serviceUsageViewer のロールを登録サービス アカウントに付与します。

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL] \
--role="roles/gkehub.admin"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL] \
--role="roles/serviceusage.serviceUsageViewer"

接続サービス アカウント

接続サービス アカウントに gkehub.connect ロールを付与します。

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[CONNECT_SERVICE_ACCOUNT_EMAIL] \
--role="roles/gkehub.connect"

Google Cloud のオペレーション スイートのサービス アカウント

Google Cloud のオペレーション スイートのサービス アカウントに stackdriver.resourceMetadata.writerlogging.logWritermonitoring.metricWriter のロールを付与します。

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL] \
--role "roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL] \
--role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL] \
--role "roles/monitoring.metricWriter"

ロギングとモニタリングの構成

GKE On-Prem では、Stackdriver Logging と Stackdriver Monitoring がデフォルトで有効になっています。

プロキシ用の Google アドレスと HashiCorp アドレスを許可リストに登録する

組織で HTTP プロキシ経由のインターネット アクセスが必要な場合は、プロキシの次の Google アドレスを許可リストに登録します。

  • binaryauthorization.googleapis.com
  • googlecode.l.googleusercontent.com
  • storage.l.googleusercontent.com
  • storage.googleapis.com

HashiCorp Terraform バージョン 0.11 を使用し vSphere で管理ワークステーション VM を作成します。プロキシまたはファイアウォールが存在する環境で Terraform を実行するには、次の HashiCorp アドレスを許可リストに登録する必要があります。

  • checkpoint-api.hashicorp.com
  • releases.hashicorp.com

ロードバランサを準備する

GKE On-Prem クラスタは、統合または手動の 2 つの負荷分散モードのいずれかで実行できます。統合モードでは、GKE On-Prem クラスタは F5 BIG-IP ロードバランサを使用します。手動モードでは、別のロードバランサを手動で構成します。

F5 BIG-IP パーティションを準備する

統合モードを使用する場合は、F5 BIG-IP パーティションを作成して、作成する GKE On-Prem クラスタごとの負荷分散を処理する必要があります。

最初に、少なくとも 2 つのパーティション(管理クラスタ用に 1 つ、ユーザー クラスタ用に 1 つ)を作成する必要があります。対応するクラスタを作成する前にパーティションを作成する必要があります。

クラスタ パーティションは他の目的では使用しないでください。各クラスタには、クラスタ専用のパーティションが必要です。

パーティションの作成方法については、F5 BIG-IP ドキュメントの管理パーティションの作成をご覧ください。

手動負荷分散モードを使用する

手動負荷分散モードでは、統合モードよりも多くの構成を行う必要があります。詳細については、手動負荷分散の有効化をご覧ください。