このページでは、Google Kubernetes Engine(GKE)でノードの自動修復を構成する方法について説明します。
概要
GKE のノードの自動修復は、クラスタ内のノードの実行状態を正常に保つための機能です。この機能を有効にすると、GKE でクラスタ内の各ノードのヘルス状態が定期的にチェックされます。ノードが長期にわたって連続してヘルスチェックに失敗すると、GKE はそのノードの修復プロセスを開始します。
修復基準
GKE はノードのヘルス ステータスを使用して、ノードを修復する必要があるかどうかを判別します。Ready
ステータスを報告しているノードは、正常と見なされます。しきい値として指定された時間の間、ノードが連続して異常ステータスを報告すると、GKE は修復アクションをトリガーします。
異常ステータスとは、次のような状況を意味します。
- しきい値として指定された時間の間(約 10 分間)、ノードが連続して
NotReady
ステータスを報告する。 - しきい値として指定された時間の間(約 10 分間)、ノードがステータスを何も報告しない。
- ノードのブートディスクが長期間(約 30 分間)にわたり容量不足になっている。
ノードの修復プロセス
修復を必要とするノードが GKE によって検出されると、そのノードはドレインされ、再作成されます。GKE はドレインが完了するまで 1 時間待ちます。ドレインが完了しない場合、ノードはシャットダウンされ、新しいノードが作成されます。
複数のノードで修復が必要な場合、GKE はそれらのノードを並行して修復することもできます。GKE は、クラスタのサイズと障害が発生したノードの数に応じて修復の数を調整します。大規模なクラスタの場合、GKE はより多くのノードを並列して修復しますが、異常なノードの数が増えると並列で修復するノードの数が少なくなります。
修復プロセスの最中にノードの自動修復を無効にした場合、処理中の修復はキャンセルされず、その時点で修復の対象になっているすべてのノードの修復が行われます。
ノード修復履歴
GKE は、自動修復イベントのログエントリを生成します。ログを確認するには、gcloud container operations list
コマンドを使用します。
ノードの自動修復を有効にする
ノードプール単位でノードの自動修復を有効にします。クラスタを作成する時点で、そのクラスタのデフォルト ノードプールの自動修復を有効にするか、無効にするかを選択できます。追加のノードプールを作成する場合、デフォルトのノードプールの自動修復設定とは独立して、そのノードプールでノードの自動修復を有効にするか、無効にするかを選択できます。
ノードの自動修復が有効になっているクラスタまたはノードプールを作成するには、gcloud
ツールまたは Google Cloud Console を使用します。
ノードの自動修復が有効なクラスタを作成する
gcloud
gcloud container clusters create cluster-name --zone compute-zone \
--enable-autorepair
Console
Cloud Console で Google Kubernetes Engine のメニューに移動します。
[add_box 作成] をクリックします。
必要に応じてクラスタを構成します。
ナビゲーション パネルの [ノードプール] で、変更するノードプールの名前をクリックします。
[自動化] で、[自動修復を有効化] チェックボックスをオンにします。
[作成] をクリックします。
自動修復が有効なノードプールを作成する
gcloud
gcloud container node-pools create pool-name --cluster cluster-name \
--zone compute-zone \
--enable-autorepair
Console
Cloud Console で Google Kubernetes Engine のメニューに移動します。
クラスタのリストで、変更するクラスタの名前をクリックします。
add_box [ノードプールを追加] をクリックします。
[ノードプールの追加] ページの [自動化] で、[自動修復を有効化] チェックボックスをオンにします。
[作成] をクリックします。
既存のノードプールの自動修復を有効にする
gcloud
gcloud container node-pools update pool-name --cluster cluster-name \
--zone compute-zone \
--enable-autorepair
Console
Cloud Console で Google Kubernetes Engine のメニューに移動します。
クラスタのリストで、変更するクラスタの名前をクリックします。
[ノード] タブをクリックします。
[ノードプール] で、変更するノードプールの名前をクリックします。
[ノードプールの詳細] ページで、[edit 編集] をクリックします。
[管理] で、[自動修復を有効化] チェックボックスをオンにします。
[保存] をクリックします。
ノードの自動修復を無効にする
gcloud
ツールまたは Google Cloud Console を使用して、既存のノードプールのノードの自動修復を無効にできます。
gcloud
gcloud container node-pools update pool-name --cluster cluster-name \
--zone compute-zone \
--no-enable-autorepair
Console
Cloud Console で Google Kubernetes Engine のメニューに移動します。
クラスタのリストで、変更するクラスタの名前をクリックします。
[ノード] タブをクリックします。
[ノードプール] で、変更するノードプールの名前をクリックします。
[ノードプールの詳細] ページで、[edit 編集] をクリックします。
[管理] で、[自動修復を有効化] チェックボックスをオフにします。
[保存] をクリックします。