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

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

概要

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

アップグレードの詳細については、コンテナ クラスタのアップグレードをご覧ください。

自動アップグレードを使用すると、次のような利点があります。

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

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

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

ノードに対する自動アップグレードのタイミングをより細かく制御するには、メンテナンスの時間枠をスケジュールします。

ノードプールの自動アップグレードは、いつでも無効にできます。ただし、自動アップグレードを無効にしても、進行中のアップグレードは停止しません。

ノードの自動アップグレードの仕組み

ノードプールのノード自動アップグレードを有効にすると、マスターがアップグレードされた直後に、マスターのバージョンと一致するようにノードがアップグレードされます。

最初に、ノードの自動アップグレードに関するガイドラインをいくつか示します。

  • 一度にアップグレードされるノードプールのノードは 1 つだけです。
  • 特定のノードプールでは、一度に 1 つのノードがアップグレードされます。その順序はランダムです。
  • ノードはメンテナンス時間枠中に自動アップグレードされます。

ノードが自動的にアップグレードされると、次のことが起こります。

  1. ノードは閉鎖され、ドレインされます。この時点で、新しいポッドの実行がスケジュールできなくなります。
  2. ノードのポッドは、他のノードに再スケジュールされます。ポッドを再スケジュールできない場合、そのポッドはノードが再作成されるまで PENDING 状態になります。
  3. ノードが削除され、新しいバージョンで再作成されます。
  4. 新しいノードを正常に登録できなかった場合、ノードプール全体の自動アップグレードが無効になります。
  5. GKE フリート全体で、特定のバージョンへのノードの自動アップグレードで異常なノードが大量に発生した場合は、問題を調査する間、そのバージョンへのアップグレードが中止されます。

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

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

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

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

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

gcloud

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

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

Console

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

  1. GCP 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. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

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

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

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

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

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

次のステップ

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

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

Kubernetes Engine のドキュメント