Kubernetes v1.37: スケジューラープリエンプ... ノート

Kubernetes v1.37: スケジューラープリエンプションによるインプレースPodリサイズ (アルファ)

Kubernetes v1.35 では、再起動なしで CPU とメモリを動的に調整できるインプレース Pod リサイジングが導入されました。しかし、完全に利用されているノードで Pod をスケールアップすると、容量が不足している場合に「Deferred」ステータスになる可能性がありました。これは、Pod がリソースが利用可能になるまで無期限に待機することを意味しました。これを解決するために、Kubernetes v1.37 では、現在アルファ版であるインプレース Pod リサイジングのためのスケジューラプリエンプションが導入されました。この機能により、Kubernetes スケジューラはノード容量を積極的に解放できます。実行中の Pod のインプレースリサイズリクエストが利用可能なリソースを超えた場合、スケジューラは優先度の低い Pod をプリエンプトできます。これにより、ビジーなノードでも重要なアプリケーションをスケールアップできます。プリエンプションは、Pod の現在のノードに限定され、対象となる優先度の低いワークロードをターゲットにします。これにより、クラスタオペレータは、優先度の低いタスクをビンパッキングすることで、リソース利用率を最大化できます。これがないと、オペレータは、利用率の低下か、重要なアプリケーションのスケーリングの失敗のリスクかのジレンマに直面していました。この機能は、スケジューラの既存の追跡メカニズムと統合されています。リサイズプリエンプションと標準の Pod 配置プリエンプションを区別します。リソース予約は、リサイズ中の競合状態を防ぐために安全に処理されます。この機能は、Kubernetes v1.37 以降と、InPlacePodVerticalScalingSchedulerPreemption フィーチャーゲートが有効になっている必要があります。管理者は、podPreemptionPolicy フィールドを使用して、特定のノードのリサイズプリエンプションを無効にすることができます。