このページでは、Google Kubernetes Engine(GKE)でノードの自動プロビジョニングを使用する方法について説明します。
概要
ノードの自動プロビジョニングは、ユーザーに代わってノードプールのリストを自動的に管理します。ノードの自動プロビジョニング機能が有効でないと、GKE はユーザーの作成したノードプール セットに含まれるノードだけを新たな対象として扱います。ノードの自動プロビジョニング機能が有効な場合は、新しいノードプールの作成と削除が自動的に行われます。
始める前に
作業を始める前に、次のことを確認してください。
- Google Kubernetes Engine API が有効になっていることを確認します。 Google Kubernetes Engine API の有効化
- Cloud SDK がインストール済みであることを確認します。
次のいずれかの方法で gcloud
のデフォルトの設定を指定します。
gcloud init
。デフォルトの設定全般を確認する場合に使用します。gcloud config
。プロジェクト ID、ゾーン、リージョンを個別に設定する場合に使用します。
gcloud init の使用
エラー One of [--zone, --region] must be supplied: Please specify
location
を受信した場合は、このセクションの内容を実施します。
-
gcloud init
を実行して、次の操作を行います。gcloud init
リモート サーバーで SSH を使用している場合は、
--console-only
フラグを指定して、コマンドがブラウザを起動しないようにします。gcloud init --console-only
- 手順に従って
gcloud
を承認し、Google Cloud アカウントを使用します。 - 新しい構成を作成するか、既存の構成を選択します。
- Google Cloud プロジェクトを選択します。
- デフォルトの 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 の仕様に基づいてノードプールを自動的に拡張します。
ノード自動プロビジョニングは、次の情報に基づいてノードプールを作成します。
- CPU とメモリのリソース リクエスト
- GPU リクエスト
- 保留中の Pod のノード アフィニティとラベルセレクタ
- 保留中のポッドのノード taint と容認機能
リソースの上限
ノードの自動プロビジョニングとクラスタ オートスケーラーには、次の 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
ノードの自動プロビジョニングを有効にするには、次の操作を行います。
- Cloud Console で Google Kubernetes Engine のメニューに移動します。
Google Kubernetes Engine のメニューに移動
- 目的のクラスタを選択します。
- アイコンをクリックします。
- [ノードの自動プロビジョニング] までスクロールし、[有効] を選択します。
- クラスタの CPU とメモリの最小使用量と最大使用量を設定します。
- [保存] をクリックします。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
自動プロビジョニングの構成ファイルを使用するには:
所定の構成のファイルを
gcloud
がアクセスできる場所に作成します。次のコマンドを実行して、構成をクラスタに適用します。
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,... のように指定します。
自動プロビジョニングの構成ファイルを使用するには:
gcloud
がアクセスできる場所に ID のデフォルトを指定する構成ファイルを作成します。次のコマンドを実行して、構成をクラスタに適用します。
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。
自動プロビジョニングの構成ファイルを使用するには:
gcloud
がアクセスできる場所に CMEK 鍵を指定する構成ファイルを作成します。次のコマンドを実行して、構成をクラスタに適用します。
gcloud container clusters update cluster-name \ --enable-autoprovisioning \ --autoprovisioning-config-file file-name
次のように置き換えます。
- cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
- file-name: 構成ファイルの名前。
ノードの整合性
ノードの自動プロビジョニングでは、セキュアブートと整合性モニタリングを有効にしてノードプールを作成できます。
セキュアブートと整合性モニタリングは、構成ファイルを使用して有効にできます。次の YAML 構成では、セキュアブートが有効、整合性モニタリングが無効になります。
shieldedInstanceConfig: enableSecureBoot: true enableIntegrityMonitoring: false
自動プロビジョニングの構成ファイルを使用するには:
gcloud
からアクセス可能な場所にあるファイルに上記の構成をコピーします。enableSecureBoot
とenableIntegrityMonitoring
の値を編集します。ファイルを保存します。次のコマンドを実行して、構成をクラスタに適用します。
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
自動プロビジョニングの構成ファイルを使用するには:
gcloud
からアクセス可能な場所にあるファイルに上記の構成をコピーします。autoUpgrade
とautoRepair
の値を編集します。ファイルを保存します。次のコマンドを実行して、構成をクラスタに適用します。
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
自動プロビジョニングの構成ファイルを使用するには:
gcloud
からアクセス可能な場所にあるファイルに上記の構成をコピーします。maxSurgeUpgrade
とmaxUnavailableUpgrade
の値を編集します。ファイルを保存します。次のコマンドを実行して、構成をクラスタに適用します。
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 永続ディスク。
自動プロビジョニングの構成ファイルを使用するには:
gcloud
がアクセスできる場所に、所定のブートディスク構成を持つファイルを作成します。次のコマンドを実行して、構成をクラスタに適用します。
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
自動プロビジョニングの構成ファイルを使用するには:
gcloud
からアクセス可能な場所にあるファイルに上記の構成をコピーします。cpu
とmemory
の値を編集します。resourceType
の値を必要な数だけ追加します。ファイルを保存します。次のコマンドを実行して、構成をクラスタに適用します。
gcloud container clusters update cluster-name \ --enable-autoprovisioning \ --autoprovisioning-config-file file-name
次のように置き換えます。
- cluster-name: ノード自動プロビジョニングを有効にするクラスタの名前。
- file-name: 構成ファイルの名前。
詳細については、gcloud container clusters update
のドキュメントをご覧ください。
Console
GPU リソースでノードの自動プロビジョニングを有効にするには、次の操作を行います。
- Cloud Console で Google Kubernetes Engine のメニューに移動します。
Google Kubernetes Engine のメニューに移動
- 目的のクラスタを選択します。
- (編集)アイコンをクリックします。
- [ノードの自動プロビジョニング] までスクロールし、[有効] を選択します。
- クラスタの CPU とメモリの最小使用量と最大使用量を設定します。
- [ リソースの追加] をクリックします。
- 追加する GPU のタイプを選択します(たとえば、NVIDIA TESLA K80 など)。 クラスタに追加する GPU の最小数と最大数を設定します。
- GKE で GPU の制限事項に同意します。
- [保存] をクリックします。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 を使用してノードの自動プロビジョニングを無効にするには:
- Cloud Console で Google Kubernetes Engine のメニューに移動します。
Google Kubernetes Engine のメニューに移動
- 目的のクラスタを選択します。
- (編集)アイコンをクリックします。
- [ノードの自動プロビジョニング] までスクロールし、[無効] を選択します。
ノードプールを「自動プロビジョニングあり」とマークする
クラスタでノードの自動プロビジョニングを有効すると、自動プロビジョニングするノードプールを指定できます。ワークロードが使用されていない場合、自動プロビジョニングされたノードプールは自動的に削除されます。
ノードプールを自動プロビジョニングとしてマークするには、次のコマンドを実行します。
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 は、ノードプールの名前に置き換えます。