ノードの自動修復

このページでは、Google Kubernetes Engine でノードの自動修復を構成する方法を説明します。

概要

GKE のノードの自動修復は、クラスタ内のノードの実行状態を正常に保つための機能です。この機能を有効にすると、GKE はクラスタ内の各ノードのヘルス状態を定期的にチェックします。ノードが長期にわたって連続してヘルスチェックに失敗すると、GKE はそのノードの修復プロセスを開始します。

修復基準

GKE はノードのヘルス ステータスを使用して、ノードを修復する必要があるかどうかを判別します。Ready ステータスを報告しているノードは、正常と見なされます。しきい値として指定された時間の間、ノードが連続して異常ステータスを報告すると、GKE は修復アクションをトリガーします。異常ステータスとは、次のような状況を意味します。

  • しきい値として指定された時間の間(約 10 分間)、ノードが連続して NotReady ステータスを報告する。
  • しきい値として指定された時間の間(約 10 分間)、ノードがステータスを何も報告しない。
  • ノードのブートディスクが長期間(約 30 分間)にわたり容量不足になっている。

ノードの修復プロセス

修復を必要とするノードが GKE によって検出されると、そのノードはドレインされ、再作成されます。ノードが応答しない、またはドレイン コマンドを処理できないほどの異常が発生している場合は、ドレインが成功しないことがあります。

複数のノードで修復が必要な場合、GKE はそれらのノードを並行して修復することもできます。GKE はクラスタのサイズとクラスタ内の破損したノードの数によって、修復するノードの数を制限します(制限数は、クラスタのサイズが大きいほど制限数が増え、破損したノードの数が多いほど減ります)。修復プロセスの最中にノードの自動修復を無効にした場合、処理中の修復はキャンセルされず、その時点で修復の対象になっているすべてのノードの修復が行われます。

GKE は、すべての自動修復イベントに対してオペレーション ログにエントリを生成します。ログを確認するには、gcloud container operations list コマンドを使用します。

ノードの自動修復を有効にする

ノードプール単位でノードの自動修復を有効にします。クラスタを作成する時点で、そのクラスタのデフォルト ノードプールの自動修復を有効にするか、無効にするかを選択できます。追加のノードプールを作成する場合、デフォルトのノードプールの自動修復設定とは独立して、そのノードプールでノードの自動修復を有効にするか、無効にするかを選択できます。

gcloud

ノードの自動修復が有効なクラスタまたはノードプールを作成するには、gcloud コマンドライン ツールを使用してクラスタまたはノードプールを作成するときに --enable-autorepair オプションを指定します。

自動修復が有効なクラスタを作成するには、次のコマンドを実行します。

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

自動修復が有効なノードプールを作成するには、次のコマンドを実行します。

gcloud container node-pools create [POOL_NAME] --cluster [CLUSTER_NAME] \
--zone [COMPUTE_ZONE] --enable-autorepair

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

gcloud container node-pools update [POOL_NAME] --cluster [CLUSTER_NAME] \
--zone [COMPUTE_ZONE] --enable-autorepair

Console

デフォルト ノードプールのノードの自動修復を有効にしてクラスタを作成するには、次の手順を行います。

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

    Google Kubernetes Engine のメニューに移動

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

  3. [標準クラスタ] テンプレートを選択するか、ワークロードに適切なテンプレートを選択します。

  4. 必要に応じてクラスタを構成します。

  5. [高度な編集] をクリックします。[自動修復を有効化] をオンにします。

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

ノードの自動修復を有効にしたノードプールを作成するには、次の手順を行います。

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

    Google Kubernetes Engine のメニューに移動

  2. クラスタの [編集] ボタンをクリックします。これは鉛筆のような形をしています。

  3. [ノードプール] メニューから、[ノードプールを追加] をクリックします。

  4. 必要に応じてノードプールを構成します。次に、ノードプールの [高度な編集] をクリックします。

  5. [自動修復を有効化] をオンにします。

  6. [保存] をクリックしてノードプールの構成を保存します。

  7. もう一度 [保存] をクリックしてクラスタに変更を適用します。

既存のノードプールに対してノードの自動修復を有効にするには、次の手順を行います。

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

    Google Kubernetes Engine のメニューに移動

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

  3. [ノードプール] メニューで、設定を変更するノードプールの [高度な編集] をクリックします。

  4. [自動修復を有効化] をオンにします。

  5. [保存] をクリックしてノードプールの構成を保存します。

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

ノードの自動修復を無効にする

gcloud

特定のノードプールの自動修復を無効にするには、次のコマンドを実行します。

gcloud container node-pools update [POOL_NAME] --cluster [CLUSTER_NAME] \
--zone [COMPUTE_ZONE] --no-enable-autorepair

Console

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

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

    Google Kubernetes Engine のメニューに移動

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

  3. [ノードプール] メニューで、設定を変更するノードプールの [高度な編集] をクリックします。

  4. [自動修復を有効化] をオフにします。

  5. [保存] をクリックしてノードプールの構成を保存します。

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

次のステップ

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

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

Kubernetes Engine のドキュメント