Upgrade to Pro — share decks privately, control downloads, hide ads and more …

初心者でもわかるKubernetes Scheduler拡張の全てとその最前線

196Ikuchil
August 02, 2023

初心者でもわかるKubernetes Scheduler拡張の全てとその最前線

Kubernetesにおけるスケジューリングをクラスターに合わせて最適化する方法は複数存在しますが、正しい設定には正しい理解が必要で、ハードルが高く見えているのも事実です。
この講演では、Schedulerにおける現在の拡張方法と、今まさに検討されているWasmを通した拡張を紹介します。その上で、最適化に必要なシミュレーターやパフォーマンステストなど周辺ツールの紹介を行います。

#CNDF2023

196Ikuchil

August 02, 2023
Tweet

Other Decks in Technology

Transcript

  1. Kensei Nakada
 Platform Engineer @ Mercari
 Kubernetes SIG-Scheduling approver
 


    その他、Kube-scheduler-simulator, Kube-scheduler-wasm-extentionのownerとして 活動
 2
  2. 本日話すこと
 1. Kubernetes Scheduler とは何者なのか
 ➢ Schedulerの役割とアーキテクチャ
 2. Schedulingをどのように自分好みにコントロール/カスタマイズするか
 ➢

    デフォルト機能の利用
 ➢ Schedulerの拡張
 3. Schedulingをいかに上手くコントロールするか
 ➢ scheduling_perf
 ➢ kube-scheduler-simulator
 4
  3. 17

  4. Schedulingのコントロール方法
 大枠 仕様・機能名 備考 デフォルトの Schedulerの機能 PodのSpec上でSchedulingの指 定を行う Pod単位での設定 KubeSchedulerConfiguration

    scheduler自身の設定ファイル Scheduler自体の拡 張
 
 Extender
 Webhook経由で任意処理を差し込む Plugin scheduler自体に任意処理を差し込む WebAssembly (WIP) wasmにコンパイルした任意処理を scheduler自体に差し込む 28
  5. Scheduler自体を拡張する
 独自のロジックをいずれかの方法で実装して、組み込む
 大枠 仕様・機能名 備考 デフォルトの Schedulerの機能 PodのSpec上でSchedulingの指定 を行う Pod単位での設定

    KubeSchedulerConfiguration scheduler自身の設定ファイル Scheduler自体の拡 張
 
 Extender
 Webhook経由で任意処理を差し込む Plugin scheduler自体に任意処理を差し込む WebAssembly (WIP) wasmにコンパイルした任意処理を scheduler自体に差し込む 35
  6. Extender
 歴史のあるWebhookベースの拡張
 スケジューリング処理中の特定のタイミングで呼び出される
 
 - Filter: Scheduling FrameworkのFilterに相当
 - Prioritize:

    Scheduling FrameworkのScoreに相当
 - Preempt: Scheduling FrameworkのPostFilterに相当
 - Bind: Scheduling FrameworkのBindに相当
 
 36
  7. Plugin (Scheduling Framework)
 Scheduling Frameworkに則って自分で作成したPluginをSchedulerに組み込む
 
 メリット:
 - パフォーマンス良い。拡張性も高い。
 


    デメリット:
 - Schedulerをビルドし直す必要がある
 - クラスター上に既存のSchedulerを無効にする必要がある
 38
  8. 72

  9. 75

  10. 79

  11. 84