ノードの自動アップグレード

このページは、Google Kubernetes Engine でノードの自動アップグレードを構成する方法について説明します。

概要

ノードの自動アップグレードを有効にすると、マスターが更新されたときに、クラスタ マスター バージョンを使用してクラスタ内のノードを最新の状態に維持できます。Google Cloud Console または gcloud コマンドを使用して新しいクラスタやノードプールを作成するときは、デフォルトでノード自動アップグレードが有効になっています。

クラスタとノードのアップグレードの詳細を確認できます。

ノードの自動アップグレードには次のようなメリットがあります。

  • 管理オーバーヘッドの削減: マスターがアップグレードされたときに、ノードを手動でトラッキングして更新する必要がなくなります。
  • セキュリティの向上: セキュリティ上の問題を解決するために、新しいバイナリがリリースされることがあります。自動アップグレードでは、GKE によって自動的にセキュリティ アップデートが適用され、最新の状態が保たれます。
  • 使いやすさ: ノードを最新の状態に保ち、Kubernetes の最新の機能を使用することが簡単にできます。

自動アップグレードが有効なノードプールでは、クラスタのマスターがアップグレードされるとすぐに、自動的にアップグレードがスケジュールされます。アップグレードが実行されると、ノードがドレインされ、現在のクラスタ マスターのバージョンと一致するように再作成されます。 ノード VM のブートディスクに加えた変更は、ノードの再作成により無効となります。ノードの再作成後も変更を維持するには、DaemonSet を使用します。

アルファ版のクラスタでは、ノードの自動アップグレードを使用できません。

既存のノードプールのノードの自動アップグレードを有効にする

Google Cloud Console または gcloud コマンドを使用して新しいクラスタを作成するときは、デフォルトでノード自動アップグレードが有効になっています。

ノード自動アップグレードが無効な場合は有効にできます。

gcloud

既存のノードプールの自動アップグレードを有効にするには、次のコマンドを実行します。

gcloud container node-pools update [NODE_POOL] --cluster [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] --enable-autoupgrade

Console

既存のノードプールの自動アップグレードを有効にするには、次の手順を行います。

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

    Google Kubernetes Engine のメニューに移動

  2. 鉛筆の形をしたクラスタの [編集] ボタンをクリックします。

  3. [ノードプール] セクションで、設定を変更するノードプールの [高度な編集] ボタンをクリックします。

  4. [自動アップグレードを有効化] をオンにします。

  5. [保存] をクリックして [高度な編集] オーバーレイを終了します。

  6. もう一度 [保存] をクリックして、クラスタを変更します。

ノードをアップグレード可能にする際の制御を容易にするには、メンテナンスの時間枠および除外の構成を検討してください。

既存ノードプールのノードの自動アップグレードを無効にする

既存のノードプールのノード自動アップグレードは無効にできます。その場合は、クラスタのノードが実行するバージョンがクラスタのバージョンと互換性のあることを確認してください。

gcloud

既存のノードプールの自動アップグレードを無効にするには、次のコマンドを実行します。

gcloud container node-pools update [NODE_POOL] --cluster [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] --no-enable-autoupgrade

Console

既存のノードプールの自動アップグレードを無効にするには、次の手順を行います。

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

    Google Kubernetes Engine のメニューに移動

  2. 鉛筆の形をしたクラスタの [編集] ボタンをクリックします。

  3. [ノードプール] セクションで、設定を変更するノードプールの [高度な編集] ボタンをクリックします。

  4. [自動アップグレードを有効化] をオフにします。

  5. [保存] をクリックして [高度な編集] オーバーレイを終了します。

  6. もう一度 [保存] をクリックして、クラスタを変更します。

ノードの自動アップグレードを有効にしてクラスタまたはノードプールを作成する

gcloud

デフォルト ノードプールの自動アップグレードが有効なクラスタを作成するには、gcloud container clusters create コマンドに --enable-autoupgrade フラグを指定します。

gcloud container clusters create [CLUSTER_NAME] --zone [COMPUTE_ZONE] \
    --enable-autoupgrade

自動アップグレードが有効なノードプールを作成するには:

gcloud container node-pools create [NODE_POOL] --cluster [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] --enable-autoupgrade

Console

Cloud Console で作成されたクラスタとノードプールは、デフォルトで自動アップグレードが有効になっています。クラスタおよびノードプールの作成手順については、クラスタの作成またはノードプールの追加と管理をご覧ください。

新しいクラスタやノードプールの自動アップグレードを無効にできます。これを行うには、クラスタやノードプールの構成中に、[高度な編集] をクリックして [自動アップグレードを有効化] をオフにします。

サージ アップグレード パラメータの変更

サージ アップグレードを使用すると、GKE が一度にアップグレードするノード数とアップグレードでワークロードが中断される回数を変更できます。

max-surge-upgrade フラグと max-unavailable-upgrade フラグは、ノードプールごとに定義されています。

これらの設定は、クラスタまたはノードプールを作成する際に変更できます。

異なるサージ パラメータを持つクラスタを作成する

サージ アップグレードの設定が異なるクラスタを作成するには、max-surge-upgrade フラグおよび max-unavailable-upgrade フラグを使用します。
gcloud beta container clusters create [CLUSTER_NAME] \
  --max-surge-upgrade=[SURGE_NODES] --max-unavailable-upgrade=[UNAVAILABLE_NODES]

サージ アップグレードが無効なクラスタを作成する

サージ アップグレードなしでクラスタを作成するには、max-surge-upgrade フラグを 0 に設定します。
gcloud beta container clusters create [CLUSTER_NAME] \
  --max-surge-upgrade=0 --max-unavailable-upgrade=1

異なるサージ パラメータを持つノードプールを作成する

サージ アップグレードの設定が異なるクラスタ内にノードプールを作成するには、max-surge-upgrade フラグおよび max-unavailable-upgrade フラグを使用します。
gcloud beta container node-pools create [NODE_POOL_NAME] \
  --num-nodes=[NUMBER_NODES] --cluster=[CLUSTER_NAME] \
  --max-surge-upgrade=[SURGE_NODES] --max-unavailable-upgrade=[UNAVAILABLE_NODES]

ノードプールでサージ アップグレードが有効になっていることを確認する

ノードプールでサージ アップグレードが有効になっていることを確認するには、gcloud を使用してクラスタのパラメータを記述します。
gcloud beta container node-pools describe [NODE_POOL_NAME] \
--cluster=[CLUSTER_NAME]

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Kubernetes Engine のドキュメント