ノード自動プロビジョニングの使用

このページでは、Google Kubernetes Engine(GKE)でノードの自動プロビジョニングを使用する方法について説明します。

概要

ノードの自動プロビジョニングは、ユーザーに代わってノードプールのリストを自動的に管理します。ノードの自動プロビジョニング機能が有効でないと、GKE はユーザーの作成したノードプール セットに含まれるノードだけを新たな対象として扱います。ノードの自動プロビジョニング機能が有効な場合は、新しいノードプールの作成と削除が自動的に行われます。

始める前に

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

次のいずれかの方法で gcloud のデフォルトの設定を指定します。

  • gcloud init。デフォルトの設定全般を確認する場合に使用します。
  • gcloud config。プロジェクト ID、ゾーン、リージョンを個別に設定する場合に使用します。

gcloud init の使用

エラー One of [--zone, --region] must be supplied: Please specify location を受信した場合は、このセクションの内容を実施します。

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

    gcloud init

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

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

gcloud config の使用

  • デフォルトのプロジェクト ID を設定します。
    gcloud config set project project-id
  • ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone compute-zone
  • リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region compute-region
  • gcloud を最新バージョンに更新します。
    gcloud components update

要件

ノード自動プロビジョニングは次の GKE リリースで利用できます。

  • バージョン 1.11.2-gke.25 以降(ゾーンクラスタ)。
  • バージョン 1.12.x 以降(リージョン クラスタ)。

サポートされていない機能

次の機能はノードの自動プロビジョニングではサポートされていません。つまり、ノードの自動プロビジョニングではこれらの機能を使用してノードプールをプロビジョニングすることはありませんが、既存のノードプールが自動スケーリングされます。

  • ローカルの PersistentVolume の自動スケーリングはサポートされていません。
  • n1(n2、e2、c2、...)以外の Compute Engine インスタンス ファミリー。
  • COS 以外のオペレーティング システム。
  • gvisor
  • 予約アフィニティの制御。
  • エフェメラル ストレージを使用する Pod のノードプールの自動プロビジョニング。
  • 変更されたフィルタを使用するカスタム スケジューリングによる自動プロビジョニング。

オペレーション

ノードの自動プロビジョニングはクラスタ オートスケーラーの仕組みの 1 つで、ノードプール単位でスケーリングを行います。ノードの自動プロビジョニング機能が有効になっていると、クラスタ オートスケーラーはスケジュール不可の Pod の仕様に基づいてノードプールを自動的に拡張します。

ノード自動プロビジョニングは、次の情報に基づいてノードプールを作成します。

リソースの上限

ノードの自動プロビジョニングとクラスタ オートスケーラーには、次の 2 つのレベルで上限が設定されています。

  • ノードプール レベル
  • クラスタレベル

ノードプールの上限

ノードの自動プロビジョニングによって作成されるノードプールは 1,000 ノードに制限されています。

クラスタの上限

定義した上限は、自動プロビジョニングされたプールだけでなく、クラスタ全体で使用される CPU リソースとメモリリソースの合計に基づいて適用されます。

クラスタ オートスケーラーは、設定した制限を超えない範囲で新しいノードを作成します。上限をすでに超えている場合でも、ノードは自動的に削除されません。

ワークロードの分離

保留中の Pod にノード アフィニティと容認機能が設定されている場合、ノードの自動プロビジョニングはラベルと taint が一致するようにノードをプロビジョニングできます。

次の条件をすべて満たすと、ノードの自動プロビジョニングはラベルと taints を持つノードプールを作成します。

  • 保留中の Pod のノードに特定のラベルキーと値が設定されている。
  • その Pod には同じキーを持つ taint の容認機能がある。
  • この容認機能が NoSchedule エフェクト、NoExecute エフェクト、またはすべてのエフェクトに対応している。

Pod の仕様は、特定のラベルを持つノードを必要とすることを、次の 2 つの方法で表現できます。

  • nodeSelector フィールドを使用する。
  • nodeAffinity フィールドで In 演算子と 1 つの値を指定する。

次に、ワークロードの分離リクエストとして解釈される Pod の仕様の一部を示します。この例では、クラスタ管理者がワークロードの分離に使用されるキーとして dedicated を選択しています。また、UI チームはワークロードに専用のノードが必要であると判断しています。

Pod には、dedicated=ui-team というラベルの付いたノードの容認能力があり、ノードの選択に nodeAffinity を使用しています。

spec:
  tolerations:
  - key: dedicated
    operator: Equal
    value: ui-team
    effect: NoSchedule
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: dedicated
            operator: In
            values:
            - ui-team

この Pod が存在する場合、dedicated=ui-team:NoSchedule という taint、dedicated=ui-team というレベルを有するノードは、ノード自動プロビジョニングによって作成されたと見なされます。

次の例では nodeSelector を使用していますが、結果は同じです。

spec:
  tolerations:
  - key: dedicated
    operator: Equal
    value: ui-team
    effect: NoSchedule
  nodeSelector:
    dedicated: ui-team

自動プロビジョニングされたノードプールの削除

自動プロビジョニングされたノードプールにノードが存在しない場合、GKE はそのノードプールを削除します。「自動プロビジョニングあり」とマークされていないノードプールは削除されません。

サポートされているマシンタイプ

現在、ノードの自動プロビジョニングによるノードプールの作成には「最大 64 個の vCPU を持つ N1 マシンタイプのマシン」という制限が課せられています。

サポートされているノードイメージ

現在、ノードの自動プロビジョニングによるノードプールの作成には「Container-Optimized OS ノードイメージを使用する」という制限が課せられています。

プリエンプティブル VM のサポート

ノードの自動プロビジョニングでは、プリエンプティブル仮想マシン(VM)インスタンスに基づいてノードプールを作成できます。

プリエンプティブル VM に基づくノードプールの作成が検討されるのは、cloud.google.com/gke-preemptible="true":NoSchedule taint の容認機能を持つスケジュール不可の Pod が存在する場合に限ります。

プリエンプティブル VM に基づいて自動プロビジョニングされたノードプールによって作成されたノードには taint が適用されます。

スケーラビリティの制限

ノードの自動プロビジョニングには、クラスタ オートスケーラーと同じ制限事項のほかに、次の制限があります。

分離されたワークロード数の上限
ノードの自動プロビジョニングでは、分離されたワークロードが最大 100 個までサポートされます。
ノードプール数の上限
ノードの自動プロビジョニングでは、プール数が 100 に近づくと、新しいノードプールの作成の優先度が低くなります。100 を超えるノードプールは、保留中の Pod のスケジュールを設定する方法が他にない場合のみ作成できます。

ノード自動プロビジョニング機能を有効にする

クラスタでノードの自動プロビジョニングを有効にするには、gcloud または Google Cloud Console を使用します。

gcloud

ノード自動プロビジョニング機能を有効にするには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --min-cpu minimum-cpu \
    --min-memory minimum-memory \
    --max-cpu maximum-cpu \
    --max-memory maximum-memory

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • minimum-cpu: クラスタの最小コア数。
  • minimum-memory: クラスタの最小メモリ量(GB)。
  • maximum-cpu: クラスタの最大コア数。
  • maximum-memory: クラスタの最大メモリ量(GB)。

次の例では、dev-cluster でノードの自動プロビジョニングを有効にし、1 個の CPU と 1 GB のメモリから構成されるクラスタから 10 個の CPU と 64 GB のメモリから構成されるクラスタまでのスケーリングを可能にしています。

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning \
    --min-cpu 1 \
    --min-memory 1 \
    --max-cpu 10 \
    --max-memory 64

Console

ノードの自動プロビジョニングを有効にするには、次の操作を行います。

  1. Cloud Console で Google Kubernetes Engine のメニューに移動します。

Google Kubernetes Engine のメニューに移動

  1. 目的のクラスタを選択します。
  2. アイコンをクリックします。
  3. [ノードの自動プロビジョニング] までスクロールし、[有効] を選択します。
  4. クラスタの CPU とメモリの最小使用量と最大使用量を設定します。
  5. [保存] をクリックします。GKE がクラスタを更新します。

自動プロビジョニング構成ファイルを使用する

ノードの自動プロビジョニングは、YAML 構成ファイルを使用して構成できます。1 つの設定を変更するために使用する場合、構成ファイルの中身は 1 行で済みます。1 つの構成ファイルで複数の設定を指定できます。この場合、構成ファイルが適用されると、それら複数の設定がすべて変更されます。

一部の詳細設定は、構成ファイルを使用してのみ指定できます。

例 1: 次の構成ファイルを適用すると、ノード自動プロビジョニングによって作成された新しいノードプールのノードの自動修復と自動アップグレードが有効になります。

management:
  autoRepair: true
  autoUpgrade: true

例 2: 次の構成ファイルを適用すると、次の設定が変更されます。

  • CPU、メモリ、GPUリソース上限を設定します。クラスタの合計サイズが指定のリソース上限を超えた場合、ノード自動プロビジョニングによるノードの作成は行われません。
  • ノード自動プロビジョニングによって作成された新しいノードプールに対して、ノードの自動修復と自動アップグレードを有効にします。
  • ノード自動プロビジョニングによって作成された新しいノードプールに対して、セキュアブートと整合性モニタリングを有効にします。
  • ノード自動プロビジョニングによって作成された新しいノードプールのブートディスク サイズを 100 GB に設定します。
resourceLimits:
  -resourceType: 'cpu'
   minimum: 4
   maximum: 10
  -resourceType: 'memory'
   maximum: 64
  -resourceType: 'nvidia-tesla-k80'
   maximum: 4
management:
  autoRepair: true
  autoUpgrade: true
shieldedInstanceConfig:
  enableSecureBoot: true
  enableIntegrityMonitoring: true
diskSizeGb: 100

自動プロビジョニングの構成ファイルを使用するには:

  1. 所定の構成のファイルを gcloud がアクセスできる場所に作成します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

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

    • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
    • file-name: 必要な構成を含む YAML ファイルの名前。

    詳細については、gcloud container clusters update のドキュメントをご覧ください。

自動プロビジョニングのデフォルト

ノード自動プロビジョニングは、クラスタ内の Pod の要件を確認して、その Pod に最適なノードの種類を決定します。ただし、一部のノードプール設定(たとえば、ノードのアップグレードに関連する設定など)は Pod によって直接指定されません。これらの設定のデフォルト値を設定できます。これは、新しく作成されたすべてのノードプールに適用されます。

自動プロビジョニングされたノードプールの ID のデフォルトの設定

Google Cloud リソースの権限は ID によって提供されます。

gcloud ツールまたは構成ファイルを使用して、新しく自動プロビジョニングされたノードプールのデフォルト ID(サービス アカウントまたは 1 つ以上のスコープ)を指定できます。

gcloud

ノードの自動プロビジョニングで使用するデフォルトの IAM サービス アカウントを指定するには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --autoprovisioning-service-account=service-account

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • service-account: デフォルトのサービス アカウントのメールアドレス。

次のサンプルセットでは、dev-cluster クラスタのデフォルトのサービス アカウントとして test-service-account@google.com を設定しています。

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning --autoprovisioning-service-account=test-service-account@google.com

ノードの自動プロビジョニングで使用するデフォルトのスコープを指定するには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --autoprovisioning-scopes=scope

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • scope: 自動プロビジョニングされたノードプールで使用される Google Cloud スコープ。複数のスコープを指定するには、スコープをカンマで区切ります。たとえば、scope, scope,... のように指定します。

次の例では、dev-cluster クラスタのデフォルト スコープを devstorage.read_only に設定しています。

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning \
    --autoprovisioning-scopes=https://www.googleapis.com/auth/pubsub,https://www.googleapis.com/auth/devstorage.read_only

ファイル

構成ファイルを使用して、ノード自動プロビジョニングで使用する ID のデフォルトを指定できます。次の YAML 構成は、IAM サービス アカウントを設定します。

  serviceAccount: service-account

service-account は、デフォルトのサービス アカウントのメールアドレスに置き換えます。

または、次の YAML 構成を使用して、ノード自動プロビジョニングで使用するデフォルトのスコープを指定することもできます。

  scopes: scope

scope は、自動プロビジョニングされたノードプールで使用される Google Cloud スコープに置き換えます。複数のスコープを指定するには、スコープをカンマで区切ります。たとえば、scope, scope,... のように指定します。

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud がアクセスできる場所に ID のデフォルトを指定する構成ファイルを作成します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • file-name: 構成ファイルの名前。

顧客管理の暗号鍵(CMEK)

新しく自動プロビジョニングされたノードプールで使用される顧客管理の暗号鍵(CMEK)を指定できます。

構成ファイルを使用して、ブートドライブの顧客管理の暗号化を有効にできます。次の YAML 構成では、CMEK の鍵を設定します。

  bootDiskKmsKey: projects/key-project-id/locations/location/keyRings/key-ring/cryptoKeys/key

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

  • zone: クラスタを作成するゾーン。
  • key-project-id: 鍵プロジェクト ID。
  • location: キーリングのロケーション。
  • key-ring: キーリングの名前。
  • key: 鍵の名前。
  • cluster-project-id: クラスタ プロジェクト ID。

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud がアクセスできる場所に CMEK 鍵を指定する構成ファイルを作成します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

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

    • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
    • file-name: 構成ファイルの名前。

ノードの整合性

ノードの自動プロビジョニングでは、セキュアブートと整合性モニタリングを有効にしてノードプールを作成できます。

セキュアブートと整合性モニタリングは、構成ファイルを使用して有効にできます。次の YAML 構成では、セキュアブートが有効、整合性モニタリングが無効になります。

  shieldedInstanceConfig:
    enableSecureBoot: true
    enableIntegrityMonitoring: false

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud からアクセス可能な場所にあるファイルに上記の構成をコピーします。enableSecureBootenableIntegrityMonitoring の値を編集します。ファイルを保存します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

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

    • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
    • file-name: 構成ファイルの名前。

ノードの自動修復と自動アップグレード

ノードの自動プロビジョニングでは、ノードの自動修復とノードの自動アップグレードを有効にしたノードプールの作成がサポートされます。

gcloud

自動プロビジョニングされたすべての新しいノードプールに対して自動修復と自動アップグレードを有効にするには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --enable-autoprovisioning-autorepair \
    --enable-autoprovisioning-autoupgrade

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。

すべての自動プロビジョニングされたノードプールの自動修復と自動アップグレードを無効にするには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --no-enable-autoprovisioning-autorepair \
    --no-enable-autoprovisioning-autoupgrade

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。

ファイル

ノードの自動修復と自動アップグレードは、構成ファイルを使用して有効または無効にできます。次の YAML 構成では、自動修復が有効で、自動アップグレードが無効です。

  management:
    autoRepair: true
    autoUpgrade: false

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud からアクセス可能な場所にあるファイルに上記の構成をコピーします。autoUpgradeautoRepair の値を編集します。ファイルを保存します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --autoprovisioning-config-file file-name

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • file-name: 構成ファイルの名前。

ノードのサージ アップグレードの設定

ノードの自動プロビジョニングでは、指定したサージ アップグレード設定でノードプールを作成できます。

gcloud

自動プロビジョニングされた新しいすべてのノードプールに対してサージ アップグレードを指定するには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --autoprovisioning-max-surge-upgrade max-surge-upgrade \
    --autoprovisioning-max-unavailable-upgrade max-unavailable-upgrade

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • max-surge-upgrade: 自動プロビジョニングされたノードプールに設定されている max-surge-upgrade の値。
  • max-unavailable-upgrade: 自動プロビジョニングされたノードプールに設定されている max-unavailable-upgrade の値。

ファイル

次のように、構成ファイルを使用して、新しく自動プロビジョニングされたすべてのノードプールのサージ アップグレード設定を指定できます。

  upgradeSettings:
    maxSurgeUpgrade: 1
    maxUnavailableUpgrade: 2

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud からアクセス可能な場所にあるファイルに上記の構成をコピーします。maxSurgeUpgrademaxUnavailableUpgrade の値を編集します。ファイルを保存します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --autoprovisioning-config-file file-name

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • file-name: 構成ファイルの名前。

詳細については、gcloud container clusters update のドキュメントをご覧ください。

カスタム ブートディスク

ノード自動プロビジョニングは、カスタム ブートディスクを使用したノードプールの作成をサポートします。

構成ファイルを使用してブートディスクの設定をカスタマイズできます。次の YAML 構成では、ノードの自動プロビジョニングによって 100 GB の SSD ディスクで構成されるノードプールが作成されます。

  diskSizeGb: 100
  diskType: pd-ssd

以下を指定します。

  • diskSizeGb: ディスクのサイズ(GB)。
  • diskType: ディスクのタイプ。次のいずれかの値になります。
    • pd-standard: 標準の永続ディスク(デフォルト)。
    • pd-ssd: SSD 永続ディスク。

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud がアクセスできる場所に、所定のブートディスク構成を持つファイルを作成します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

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

    • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
    • file-name: 構成ファイルの名前。

GPU の上限の構成

ノードの自動プロビジョニングで GPU で使用する場合、gcloud ツールまたは Google Cloud Console を使用して、クラスタ内の各 GPU タイプに上限を設定できます。複数のタイプの GPU を構成するには、構成ファイルを使用する必要があります。

使用可能な resourceTypes の一覧を取得するには、gcloud compute accelerator-types list を実行します。

gcloud

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --max-cpu maximum-cpu \
    --max-memory maximum-memory \
    --min-accelerator type=gpu-type,count=minimum-accelerator \
    --max-accelerator type=gpu-type,count=maximum-accelerator

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • maximum-cpu: クラスタの最大コア数。
  • maximum-memory: クラスタの最大メモリ量(GB)。
  • gpu-type: GPU アクセラレータのタイプ。
  • minimum-accelerator: クラスタ内の gpu-type GPU アクセラレータの最小数。
  • maximum-accelerator: クラスタ内の gpu-type GPU アクセラレータの最大数。

次の例では、dev-cluster クラスタ内の nvidia-tesla-k80 GPU アクセラレータに GPU の上限を設定しています。

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning \
    --max-cpu 10 \
    --max-memory 64 \
    --min-accelerator type=nvidia-tesla-k80,count=1 \
    --max-accelerator type=nvidia-tesla-k80,count=4

ファイル

構成ファイルを使用すると、複数のタイプの GPU の上限を読み込むことが可能です。 次の YAML 構成では、2 種類の GPU を設定しています。

  resourceLimits:
    -resourceType: 'cpu'
     minimum: 4
     maximum: 10
    -resourceType: 'memory'
     maximum: 64
    -resourceType: 'nvidia-tesla-k80'
     maximum: 4
    -resourceType: 'nvidia-tesla-v100'
     maximum: 2

自動プロビジョニングの構成ファイルを使用するには:

  1. gcloud からアクセス可能な場所にあるファイルに上記の構成をコピーします。cpumemory の値を編集します。resourceType の値を必要な数だけ追加します。ファイルを保存します。

  2. 次のコマンドを実行して、構成をクラスタに適用します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --autoprovisioning-config-file file-name

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • file-name: 構成ファイルの名前。

詳細については、gcloud container clusters update のドキュメントをご覧ください。

Console

GPU リソースでノードの自動プロビジョニングを有効にするには、次の操作を行います。

  1. Cloud Console で Google Kubernetes Engine のメニューに移動します。

Google Kubernetes Engine のメニューに移動

  1. 目的のクラスタを選択します。
  2. 編集)アイコンをクリックします。
  3. [ノードの自動プロビジョニング] までスクロールし、[有効] を選択します。
  4. クラスタの CPU とメモリの最小使用量と最大使用量を設定します。
  5. [ リソースの追加] をクリックします。
  6. 追加する GPU のタイプを選択します(たとえば、NVIDIA TESLA K80 など)。 クラスタに追加する GPU の最小数と最大数を設定します。
  7. GKE で GPU の制限事項に同意します。
  8. [保存] をクリックします。GKE がクラスタを更新します。

ノード自動プロビジョニングのロケーション

ノードの自動プロビジョニングで新しいノードプールを作成できるゾーンを設定します。リージョンのロケーションはサポートされていません。ゾーンは、クラスタと同じリージョンに属している必要がありますが、クラスタレベルで定義されているノードの場所には限定されません。ノードの自動プロビジョニングの場所を変更しても、既存のノードプールに影響はありません。

ノード自動プロビジョニングで新しいノードプールを作成できるロケーションを設定するには、次のコマンドを実行します。

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --autoprovisioning-locations=zone

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

  • cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
  • zone: ノード自動プロビジョニングが新しいノードプールを作成できるゾーン。複数のゾーンを指定するには、ゾーンをカンマで区切ります。たとえば、zone, zone,... のように指定します。

ノード自動プロビジョニング機能を無効にする

特定のクラスタのノード自動プロビジョニング機能を無効にすると、ノードプールが自動プロビジョニングされなくなります。

gcloud

クラスタのノードの自動プロビジョニングを無効にするには、次のコマンドを実行します。

gcloud container clusters update cluster-name --no-enable-autoprovisioning

Console

Google Cloud Console を使用してノードの自動プロビジョニングを無効にするには:

  1. Cloud Console で Google Kubernetes Engine のメニューに移動します。

Google Kubernetes Engine のメニューに移動

  1. 目的のクラスタを選択します。
  2. 編集)アイコンをクリックします。
  3. [ノードの自動プロビジョニング] までスクロールし、[無効] を選択します。

ノードプールを「自動プロビジョニングあり」とマークする

クラスタでノードの自動プロビジョニングを有効すると、自動プロビジョニングするノードプールを指定できます。ワークロードが使用されていない場合、自動プロビジョニングされたノードプールは自動的に削除されます。

ノードプールを自動プロビジョニングとしてマークするには、次のコマンドを実行します。

gcloud container node-pools update node-pool-name --enable-autoprovisioning

node-pool-name は、ノードプールの名前に置き換えます。

ノードプールを自動プロビジョニングなしとマークする

ノードプールを自動プロビジョニングなしとマークするには、次のコマンドを実行します。

gcloud container node-pools update node-pool-name --no-enable-autoprovisioning

node-pool-name は、ノードプールの名前に置き換えます。

次のステップ