Autopilot クラスタの作成


このページでは、Autopilot モードで Google Kubernetes Engine(GKE)クラスタを作成する方法について説明します。オペレーションの Autopilot モードは、Service とアプリケーションに集中できる一方、ノードの管理とインフラストラクチャの管理は Google が行う、人による操作が不要な Kubernetes 環境です。ノードの使用状況を計画せずに Pod のスケジュールを設定できます。Autopilot クラスタを作成した後、必要に応じてワークロードをデプロイし、アプリケーションをスケーリングできます。GKE により、ワークロードを実行するためのリソースとハードウェアのプロビジョニング、構成、管理が行われます。

始める前に

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

  • Google Kubernetes Engine API が有効になっていることを確認します。
  • Google Kubernetes Engine API の有効化
  • Google Cloud CLI がインストールされていることを確認します。
  • 次のいずれかの方法で、プロジェクトにデフォルトの Google Cloud CLI 設定をセットアップします。
    • プロジェクトのデフォルトの設定全般を確認する場合は、gcloud init を使用します。
    • gcloud config を使用して、プロジェクト ID、ゾーン、リージョンを個別に設定します。

    gcloud init

    1. gcloud init を実行して、次の操作を行います。

      gcloud init

      リモート サーバーで SSH を使用している場合は、--console-only フラグを指定して、コマンドがブラウザを起動しないようにします。

      gcloud init --console-only
    2. Google Cloud アカウントを使用できるように、gcloud CLI の承認手順を行います。
    3. 新しい構成を作成するか、既存の構成を選択します。
    4. Google Cloud プロジェクトを選択します。
    5. デフォルトの Compute Engine ゾーンを選択します。
    6. デフォルトの Compute Engine リージョンを選択します。

    gcloud config

    1. デフォルトのプロジェクト ID を設定します。
      gcloud config set project PROJECT_ID
    2. デフォルトの Compute Engine リージョン(例: us-central1)を設定します。
      gcloud config set compute/region COMPUTE_REGION
    3. デフォルトの Compute Engine ゾーン(例: us-central1-c)を設定します。
      gcloud config set compute/zone COMPUTE_ZONE
    4. gcloud を最新バージョンに更新します。
      gcloud components update

    デフォルトの場所を設定することで、gcloud CLI のエラー(One of [--zone, --region] must be supplied: Please specify location など)を防止できます。

Autopilot クラスタの作成

Autopilot クラスタは、Google Cloud CLI か Google Cloud Console を使用して作成できます。

gcloud

Google Cloud CLI を使用してパブリック Autopilot クラスタを作成するには、次のコマンドを実行します。

gcloud container clusters create-auto CLUSTER_NAME \
    --region REGION \
    --project=PROJECT_ID

以下を置き換えます。

  • CLUSTER_NAME: 新しい Autopilot クラスタの名前。
  • REGION: クラスタのリージョンus-central1 など)。
  • PROJECT_ID: プロジェクト ID。

必要に応じて、--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com フラグを使用して、ノードで Compute Engine のデフォルト サービス アカウントの代わりに使用される別の IAM サービス アカウントを指定できます。このフラグは省略できますが、ノードが必要以上の権限を持つことがないように、必要最小限の権限のみを持つサービス アカウントを作成して使用することを強くおすすめします。

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

Console

Google Cloud Console を使用して Autopilot クラスタを作成するには、次のタスクを実行します。

  1. Cloud Console で Google Kubernetes Engine ページに移動します。

    Google Kubernetes Engine に移動

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

  3. [Autopilot] セクションで、[構成] をクリックします。

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

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

  6. 一般公開クラスタまたは限定公開クラスタを選択します。

  7. (省略可)[ネットワーク オプション] を展開してネットワーク設定を指定します。

    1. 限定公開クラスタを選択した場合:
      1. 承認済み外部 IP アドレスからアクセス可能なコントロール プレーンを作成するには、[外部 IP アドレスを使用してコントロール プレーンにアクセス] チェックボックスをオンにします。パブリック エンドポイント アクセスを無効にするには、このチェックボックスをオフにします。
      2. (省略可)コントロール プレーンの IP 範囲172.16.0.0/28 など)を設定します。
    2. パブリック エンドポイントへのアクセスが制限されたクラスタを作成する場合は、[コントロール プレーン承認済みネットワークを有効にする] チェックボックスをオンにします。
      1. 指定する特定のアドレスセットへのアクセス権を付与するには、[承認済みネットワークを追加] をクリックします。
      2. [名前] に、ネットワークに付ける名前を入力します。
      3. [ネットワーク] に、クラスタ コントロール プレーンへのアクセス権を付与する CIDR 範囲を入力します。
      4. [完了] をクリックします。必要に応じて、承認済みネットワークを追加します。
    3. [ネットワーク] と [ノードのサブネット] を入力するか、default の設定を受け入れます。このオプションにより、クラスタのサブネットが生成されます。
    4. [Pod のアドレス範囲] フィールドに、Pod 範囲、マスクを入力するか、デフォルト値(10.0.0.0/14 など)を受け入れます。
    5. [Service のアドレスの範囲] フィールドに、Service 範囲、Pod 範囲、マスクを入力するか、デフォルト値(10.4.0.0/19 など)を受け入れます。
  8. (省略可)詳細設定を指定するには、[詳細オプション] を展開します。

    1. コントロール プレーンのリリース チャンネルを選択します。
    2. [メンテナンスの時間枠を有効化] をクリックして、クラスタの自動メンテナンスを実行するタイミングを管理します。
      1. [メンテナンスの除外を追加します] をクリックします。週単位のメンテナンスの場合は、開始時間と期間を選択し、メンテナンスの時間枠が発生する曜日を選択します。カスタム エディタに切り替えると、ルールを直接編集できます。
    3. [メタデータ] フィールドに、クラスタの説明を入力します。
    4. [ラベルを追加] をクリックし、Key-Value ペアを追加してクラスタを整理できます。
  9. [作成] をクリックします。

Cloud NAT を有効にした限定公開クラスタの送信インターネット アクセスの有効化

デフォルトでは、Autopilot クラスタは一般公開されます。プライベート Autopilot クラスタを作成した場合、これらのノードには外部 IP アドレスがありません。クラスタから送信インターネット接続(DockerHub からのイメージの pull など)を行うには、Cloud NAT を構成する必要があります。Cloud NAT により、限定公開クラスタはインターネットにパケットを送信し、対応する確立されたレスポンス パケットを受信できます。以下のタスクを実行して、Cloud Router に NAT 構成を作成します。

gcloud

Google Cloud CLI を使用してクラスタに NAT 処理を行うには、次のコマンドを実行します。

  1. Cloud Router を作成する

    gcloud compute routers create NAT_ROUTER \
        --network NETWORK \
        --region REGION \
        --project=PROJECT_ID
    

    以下を置き換えます。

    • NAT_ROUTER: Cloud Router の名前。
    • NETWORK: Cloud Router を作成するネットワーク名。たとえば、デフォルト ネットワークで NAT を使用する場合は、ルーターの作成時に default ネットワーク名を使用します。
    • REGION: クラスタのリージョンus-central1 など)。
    • PROJECT_ID: プロジェクト ID。
  2. ルーターに構成を追加します。この構成により、リージョン内のすべてのインスタンスが、すべてのプライマリとエイリアス IP の範囲で Cloud NAT を使用できるようになります。また、NAT ゲートウェイに外部 IP アドレスが自動的に割り振られます。その他のオプションについては、Google Cloud CLI のドキュメントをご覧ください。

    gcloud compute routers nats create NAT_CONFIG \
        --region REGION \
        --router NAT_ROUTER \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips \
        --project=PROJECT_ID
    

    以下を置き換えます。

    • NAT_CONFIG: NAT 構成の名前。
    • REGION: クラスタのリージョンus-central1 など)。
    • NAT_ROUTER: Cloud Router の名前。
    • PROJECT_ID: プロジェクト ID。

Console

  1. Cloud Console の [Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. [開始] または [NAT ゲートウェイを作成] をクリックします

  3. [ゲートウェイ名] を入力します。

  4. [VPC ネットワーク] を選択します。

  5. NAT ゲートウェイの [リージョン] を設定します。

  6. リージョンの Cloud Router を選択または作成します。

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

クラスタへの接続

クラスタを作成した後、クラスタに接続するための認証情報を取得する必要があります。

gcloud

gcloud container clusters get-credentials CLUSTER_NAME \
    --region REGION \
    --project=PROJECT_ID

以下を置き換えます。

  • CLUSTER_NAME: 新しい Autopilot クラスタの名前。
  • REGION: クラスタのリージョンus-central1 など)。
  • PROJECT_ID: プロジェクト ID。

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

Console

  1. Cloud Console で Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

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

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

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

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

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

gcloud

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

gcloud container clusters describe CLUSTER_NAME \
    --region REGION

以下を置き換えます。

  • CLUSTER_NAME: Autopilot クラスタの名前。
  • REGION: クラスタのリージョンus-central1 など)。

コマンドの出力には次の内容が含まれます。

autopilot:
  enabled: true

Console

クラスタが Autopilot モードで作成されていることを確認するには:

  1. Cloud Console で Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

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

クラスタ構成を確認する

Namespace のすべてのリソースを表示するには、次のコマンドを実行します。

kubectl get all --all-namespaces

クラスタの Pod、Service、Deployment、DaemonSet などのクラスタの新しいリソースが表示されます。

次のステップ