Kubernetes Blog 日本語
フォロー
Kubernetes v1.37:ノードライフサイクル条件の導入
Kubernetesは従来、基本的なステータス情報以上の、Nodeのライフサイクル状態を記述するための統一された方法を欠いていました。これはしばしば、断片的な理解や異なるクラスタコンポーネント間の潜在的な競合につながっていました。Kubernetes v1.37では、このギャップを埋めるために、DrainInProgress、Drained、MaintenancePlanned、MaintenanceInProgress、GracefulNodeShutdownInProgressという5つのよく知られたNode条件が導入されました。これらの新しい条件は、True、False、またはUnknownのステータスを使用して現在の状態を示します。これらの条件の設定と解除は、管理者または権限のあるコントローラーの責任です。現在、コアワークロードコントローラーはこれらの条件に基づいて動作しませんが、Nodeのライフサイクルイベントをシグナルすることで運用上の明確さを提供します。例えば、自動化は作業開始前にMaintenancePlannedを設定し、開始後にMaintenanceInProgressを設定できます。同様に、ドレイン自動化はそれに応じてDrainInProgressとDrainedを設定できます。推奨されるパターンは、実際の運用(例えば、cordoningやdraining)には既存のKubernetesメカニズムを引き続き利用しながら、ステータスレポートのためにこれらの条件を使用することです。この共有シグナルは、スケジューラから外部メンテナンスシステムまで、さまざまなクラスタコンポーネントがNodeステータスを理解する必要があるため、非常に重要です。これがなければ、コンポーネントは、Graceful shutdown中に意図的に終了されたPodをDaemonSetコントローラーが置き換えるといった、競合する決定を下す可能性があります。これらの新しい条件は、Nodeライフサイクル管理における将来の機能強化のための安定した基盤を提供します。Kubernetesコミュニティは、Graceful node shutdownやメンテナンスなどのシナリオを改善するために、これらの新しい条件に関するフィードバックを積極的に求めています。