こんばんは、ACS 事業部の埜下です。
KubeCon + CloudNativeCon Europe 2023 の 1 日目、Kubernetes SIG Scheduling のセッションについてお伝えします。
スケジューラ概要
導入としてスケジューラの概要説明がありました。
スケジューラのフレームワークには「Scheduling Cycle」と「Binding Cycle」のフェーズがあり、Scheduling Cycle で Pod を実行するノードを決めて Binding Cycle で決定内容を API サーバに通知します。
そして、スケジューラの拡張性を高めるために、Scheduling Cycle の前段階に新しく「PreEnqueue」という処理を追加したそうです。
アップデート
SIG Scheduling として以下のアップデートが紹介されました。
- KEP-3521: Pod Scheduling Readiness (Beta)
- KEP-2926: Mutable scheduling directives for suspended Jobs (GA)
- KEP-3838: Mutable Pod scheduling directives when gated (Beta)
そのなかでも KEP-3521 は、Pod の不要なスケジューリングを減らすスケジューリングゲートという機能のベータ版が v1.26 で追加されました。
スケジューリングゲートは先述の PreEnqueue でプラグインとして実装されてており、NG と判断された Pod はスケジューリングキューにも入らず、成功することのないスケジューリングの試行を減らせるようです。
サブプロジェクトのアップデート
SIG のサブプロジェクトとして、Kubernetes ネイティブのジョブキューイングシステム Kueue と、Pod を再配置してくれる Descheduler のアップデートが紹介されました。
また、スケジューラのシミュレータ Kube-Scheduler-Simulator と、コントロールプレーンのスケーラビリティをシミュレートする KWOK (Kubernetes without kubelet) が紹介されました。
さいごに
SIG Scheduling のセッションについてお伝えしました。
Pod 配置先のノードを決めるという役割を持つスケジューラもどんどん機能が追加されているので、アップデートをキャッチアップしていく必要がありますね。