Autopilot クラスタの作成


このページでは、Autopilot モードで Google Kubernetes Engine(GKE)クラスタを作成する方法について説明します。Autopilot は、お客様がサービスとアプリケーションに集中できるようにする GKE の運用モードであり、ノードとインフラストラクチャの管理は GKE が行います。ワークロードをデプロイすると、GKE によりリソースとハードウェアのプロビジョニング、構成、管理が行われます(スケーリング時を含む)。

準備

作業を始める前に、次のことを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得する。
  • クラスタを作成するための適切な権限があることを確認します。少なくとも、Kubernetes Engine Cluster 管理者である必要があります。
  • 新しいクラスタをフリートに登録する場合は、必要な API と権限があることを確認してください。

GKE の IAM サービス アカウントを設定する

GKE は、ノードに接続されている IAM サービス アカウントを使用して、ロギングやモニタリングなどのシステムタスクを実行します。少なくとも、これらのノード サービス アカウントには、プロジェクトに対する Kubernetes Engine デフォルト ノード サービス アカウントroles/container.defaultNodeServiceAccount)ロールが必要です。デフォルトでは、GKE はプロジェクトで自動的に作成される Compute Engine のデフォルトのサービス アカウントをノード サービス アカウントとして使用します。

Compute Engine のデフォルト サービス アカウントに roles/container.defaultNodeServiceAccount ロールを付与する手順は次のとおりです。

console

  1. [ようこそ] ページに移動します。

    [ようこそ] に移動

  2. [プロジェクト番号] フィールドで、 [クリップボードにコピー] をクリックします。
  3. [IAM] ページに移動します。

    [IAM] に移動

  4. [ アクセスを許可] をクリックします。
  5. [新しいプリンシパル] フィールドに次の値を指定します。
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    PROJECT_NUMBER は、コピーしたプロジェクト番号に置き換えます。
  6. [ロールを選択] メニューで、[Kubernetes Engine のデフォルト ノード サービス アカウント] ロールを選択します。
  7. [保存] をクリックします。

gcloud

  1. Google Cloud プロジェクト番号を確認します。
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    PROJECT_ID を実際のプロジェクト ID に置き換えます。

    出力は次のようになります。

    12345678901
    
  2. Compute Engine のデフォルト サービス アカウントに roles/container.defaultNodeServiceAccount ロールを付与します。
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    PROJECT_NUMBER は、前の手順で取得したプロジェクト番号に置き換えます。

Autopilot クラスタの作成

新しい Autopilot クラスタを作成するときに指定する必要がある最小情報は、名前、プロジェクト(通常は現在のプロジェクト)、リージョン(通常はコマンドライン ツールのデフォルトのリージョン)です。ただし、構成設定は他にも多数あり、その中にはクラスタの作成後に変更できないものもあります。クラスタの作成後に変更できない設定を理解し、クラスタを再度作成する必要がないように、クラスタの作成時に適切な設定を選択してください。

クラスタ構成オプションの概要については、クラスタ構成の選択についてをご覧ください。使用可能なオプションの一覧については、gcloud container clusters create-auto と Terraform google_container_cluster リファレンス ガイドをご覧ください。

Autopilot クラスタは、Google Cloud CLI、Google Cloud コンソール、または Terraform を使用して作成できます。

gcloud

次のコマンドを実行します。

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

次のように置き換えます。

  • CLUSTER_NAME: 新しい Autopilot クラスタの名前。
  • LOCATION: クラスタのリージョン
  • PROJECT_ID: プロジェクト ID。

Compute Engine のデフォルトのサービス アカウントの代わりに、ノードで使用できる最小権限の IAM サービス アカウントを指定することを強くおすすめします。最小権限のサービス アカウントを作成する方法については、最小権限のサービス アカウントを使用するをご覧ください。

gcloud CLI でカスタム サービス アカウントを指定するには、コマンドに次のフラグを追加します。

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

SERVICE_ACCOUNT_NAME は、最小権限のサービス アカウントの名前に置き換えます。

指定できるその他のオプションのリストについては、gcloud container clusters create-auto リファレンス ドキュメントをご覧ください。

Console

次の作業を実行します。

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. [ 作成] をクリックします。

  3. [クラスタの基本] セクションで、次の操作を行います。

  4. クラスタの名前を [名前] に入力します。

  5. クラスタのリージョンを選択します。

    1. 省略可(GKE Enterprise で利用可能): 新しいクラスタをフリートに登録する場合は、[フリート登録] セクションに移動し、Google Cloud コンソールで新しいクラスタを作成して登録するの手順に沿ってクラスタの登録を完了します。
  6. [Networking] セクションの構成手順については、ネットワーク分離をカスタマイズするをご覧ください。

  7. 必要に応じて、ノードにカスタム IAM サービス アカウントを指定します。
    1. [詳細設定] ページで、[セキュリティ] セクションを開きます。
    2. [サービス アカウント] メニューで、目的のサービス アカウントを選択します。

    Compute Engine のデフォルトのサービス アカウントの代わりに、ノードで使用できる最小権限の IAM サービス アカウントを指定することを強くおすすめします。最小権限のサービス アカウントを作成する方法については、最小権限のサービス アカウントを使用するをご覧ください。

  8. 必要に応じて、メンテナンスの時間枠や高度なセキュリティ機能などの設定を構成します。

  9. [作成] をクリックします。

Terraform

Terraform を使用して Autopilot クラスタを作成するには、次の例を参照してください。

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-basic"
  location = "us-central1"

  enable_autopilot = true

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

Terraform を使用する詳細については、GKE での Terraform のサポートをご覧ください。

特定のリリース チャンネルとバージョンの Autopilot クラスタを作成する

デフォルトでは、GKE は新しい Autopilot クラスタを Regular リリース チャンネルに登録します。このチャンネルにはデフォルトの GKE バージョンが含まれています。Autopilot クラスタを作成するときにリリース チャンネルを変更するには、gcloud CLI、Google Cloud コンソール、または Terraform を使用します。

gcloud CLI を使用してクラスタを作成するときには、特定の GKE バージョンも設定できます。クラスタ バージョンの設定が有用であるのは、特定のバージョン要件がある場合に限られます。クラスタ バージョンを設定するには、gcloud container clusters create-auto コマンド--cluster-version フラグを指定します。指定するバージョンは、利用可能な GKE バージョンである必要があります。

リリース チャンネルとバージョンを設定する次の手順は省略可能です。特定の GKE バージョンを必要とする場合を除き、デフォルトのリリース チャンネル設定を維持することをおすすめします。

gcloud

次のコマンドを実行します。

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --release-channel=RELEASE_CHANNEL

RELEASE_CHANNEL は、クラスタのリリース チャンネルの名前に置き換えます。デフォルトは Regular です。

必要に応じて、--cluster-version=CLUSTER_VERSION を指定し、CLUSTER_VERSION をクラスタの GKE バージョン(1.29.4-gke.1043002 など)に置き換えます。指定したバージョンは、新しいバージョンがリリース チャンネルでデフォルトになるまで適用されます。その後、GKE はクラスタを新しいデフォルト バージョンに自動的にアップグレードします。このフラグを省略すると、GKE はバージョンをリリース チャンネルのデフォルト バージョンに設定します。

利用可能なバージョンを確認するには、チャンネルで利用できるバージョンをご確認ください。選択したチャンネルでマイナー バージョンを実行できます。また、他のチャンネルのパッチ バージョンのサブセットを選択することもできます。

コンソール

Autopilot クラスタの作成時にリリース チャンネルを設定する手順は次のとおりです。

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. [ 作成] をクリックします。

  3. [Autopilot] で [構成] をクリックします。

  4. [クラスタの基本] セクションで、次の操作を行います。

    1. 名前を指定します。
    2. リージョンを選択します。
  5. [詳細設定] セクションで [リリース チャンネル] を選択します。

  6. [作成] をクリックします。

Terraform

Terraform を使用して Autopilot クラスタを作成するときにリリース チャンネルとクラスタ バージョンを設定するには、次の例を参照してください。

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-release-channel"
  location = "us-central1"

  enable_autopilot = true

  release_channel {
    channel = "REGULAR"
  }

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

Terraform を使用する詳細については、GKE での Terraform のサポートをご覧ください。

既存のクラスタのリリース チャンネルと GKE バージョンも変更できます。手順については、コントロール プレーンの手動アップグレード新しいリリース チャンネルの選択をご確認ください。

クラスタに接続する

gcloud

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

このコマンドにより、作成したクラスタを使用するように kubectl が構成されます。

Console

  1. クラスタリストで、接続先のクラスタの横にある [ アクション] をクリックし、[接続] をクリックします。

  2. プロンプトが表示されたら、[Cloud Shell で実行] をクリックします。生成されたコマンドは、次のように Cloud Shell にコピーされます。

    gcloud container clusters get-credentials autopilot-cluster --location=us-central1 --project=autopilot-test
    
  3. Enter キーを押してコマンドを実行します。

クラスタモードを確認する

クラスタが Autopilot クラスタかどうかは、Google Cloud CLI か Google Cloud コンソールを使用して確認できます。

gcloud

クラスタが Autopilot モードで作成されていることを確認するには、次のコマンドを実行します。

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION

出力には次のものが含まれます。

autopilot:
  enabled: true

コンソール

クラスタが Autopilot モードで作成されていることを確認するには、次のようにします。

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. クラスタリストでクラスタを見つけます。[モード] に [Autopilot] と表示されます。

次のステップ