Azure Kubernetes Service (AKS) ノードの自動修復
Azure Kubernetes Service (AKS) によってワーカー ノードの正常性状態が継続的に監視され、正常ではなくなった場合、ノードの自動修復が実行されます。 Azure 仮想マシン (VM) プラットフォームでは、問題が発生している VM に対してメンテナンスが実行されます。 AKS と Azure VM が連携し、クラスターのサービス中断が最小限に抑えられます。
この記事では、Windows ノードおよび Linux ノードのノード自動修復機能の仕組みについて説明します。
NotReady ノードを AKS で確認する方法
AKS では、ノードが正常ではなく、修復が必要かどうかを、次のルールを利用して判断します。
- 10 分の時間枠内の連続した確認で NotReady 状態がノードから報告される。
- ノードからは、10 分以内に何の状態も報告されません。
kubectl get nodes
コマンドを使用して、ノードの正常性状態を手動で確認できます。
自動修復のしくみ
注意
AKS が、ユーザー アカウント AKS-remediator を使用して修復操作を開始します。
AKS は 5 分間異常な状態にある異常なノードを識別すると次のアクションを実行します。
- ノードの再起動を試みます。
- ノードの再起動に失敗した場合、AKS はノードを再イメージ化します。
- 再イメージ化に失敗した場合で、これが Linux ノードである場合、AKS はノードを再デプロイします。
自動修復が失敗した場合、AKS エンジニアによる代替の修復の調査が行われます。
Note
次の汚染がノードにある場合、自動修復はトリガーされません。 node.cloudprovider.kubernetes.io/shutdown
、ToBeDeletedByClusterAutoscaler
。
自動修復プロセスの全体が完了するには、最長で 1 時間かかることがあります。 AKS では、各ステップで最大 3 回再試行します。
ノードの自動ドレイン
スケジュール化されたイベントは、ノード プールのいずれかにある基になる VM で発生する可能性があります。 スポット ノード プールの場合、スケジュール化されたイベントからノードの Preempt ノード イベントが発生する可能性があります。 preempt などの特定のノード イベントでは、AKS ノードの自動ドレインが発生し、影響を受けたノードの切断およびドレインが試行されます。 このプロセスにより、そのノードの影響を受けたワークロードの再スケジュールが可能になります。 "kubernetes.azure.com/scalesetpriority: spot"
が原因で、ノードが "remediator.kubernetes.azure.com/unschedulable"
のテイントを受け取る場合があります。
次の表は、ノード イベントと、そのイベントが AKS ノードの自動ドレインのために発生させるアクションを示しています。
Event | 説明 | アクション |
---|---|---|
Freeze | VM は数秒一時停止するようスケジュールされています。 CPU とネットワーク接続が中断する場合がありますが、メモリや開いているファイルへの影響はありません。 | NO ACTION |
再起動 | VM には再起動がスケジュールされています。 VM の非永続的メモリが失われます。 | NO ACTION |
Redeploy | VM は別のノードに移動するようスケジュールされています。 VM のエフェメラル ディスクは失われます。 | 切断およびドレイン。 |
Preempt | スポット VM は削除されています。 VM のエフェメラル ディスクは失われます。 | 切断およびドレイン |
Terminate | VM が削除対象としてスケジュールされています。 | 切断およびドレイン。 |
制限事項
多くの場合で、ノードが異常かどうかの AKS による識別と、問題の修復の試行が可能です。 ただし、AKS で問題を修復できない場合や、問題があることを検出できない場合があります。 たとえば、次のシナリオ例では、AKS で問題を検出できません。
- ネットワーク構成にエラーがあり、ノードの状態が報告されていない。
- ノードを最初に正常なノードとして登録できなかった。
ノードの自動ドレインはベスト エフォート サービスであり、あらゆるシナリオで完璧に動作するとは限りません
次のステップ
可用性ゾーンを使用して AKS クラスター ワークロードの高可用性を強化します。
Azure Kubernetes Service