Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kueueに新しいPriorityClassを足した話
Search
Hiroyuki Moriya
October 20, 2023
0
610
kueueに新しいPriorityClassを足した話
kubernetes meetup tokyoで発表しました
Hiroyuki Moriya
October 20, 2023
Tweet
Share
More Decks by Hiroyuki Moriya
See All by Hiroyuki Moriya
JobSet超入門
gekko0114
1
800
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
180
21k
Documentation Writing (for coders)
carmenintech
65
4.4k
Docker and Python
trallard
40
3.1k
Unsuck your backbone
ammeep
668
57k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
RailsConf 2023
tenderlove
29
880
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
BBQ
matthewcrist
85
9.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Music & Morning Musume
bryan
46
6.1k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Transcript
Kueueに新しいPriorityClassを足した話 Hiroyuki Moriya kubernetes meetup tokyo #61
Self introduction ▶ GitHub: @Gekko0114 ▶ Software Engineer ▶ 趣味でk8s関連のOSS
今日話すこと ▶ kubernetes-sigs/Kueueに新しいPriorityClassを足しました ▶ KEP(提案書)作成〜実装まで、一気通貫でやらせてもらいました ▶ Kueueの概要、KEPの内容、感想を喋ります
Kueueとは ▶ Batchワークロードを柔軟に実行するためのOSS ▶ Job, MPIJob, PyTorchJob, TensorflowJobなどのCRDを管理できる
▶ cluster毎にbudgetを設定すると、実行されるPodのresource合計がbudgetに収まる(詳 細は省略) ▶ 待機しているJobたちは、Queueに積まれる。リソースが空いたら実行される
Job作成から実行までの流れ ▶ Jobを作成すると、workloadというCRDが生成される。workloadがqueueに stackされる。clusterのresourceが空くと、実行される ▶ JobのPriority順に並ぶ
背景:Priorityに関する課題があった ▶ Queue内のworkloadの順番が、Pod Priorityで決まる ▶ Kueue controllerが参照するworkloadのpriorityと、pod priorityが同じなので、 pod preemptionに影響を与えずに、workload側のPriorityだけを独立して管理す
るのが面倒だった
KEP:workloadPriority ▶ workloadPriorityClassを導入した ▶ Jobのlabelを介して、workloadPriorityClassを指定可能にした
workloadPriorityの使い方 ▶ workloadPriorityClassをcreateする ▶ JobのlabelにworkloadPriorityClass の名前を指定
workloadPriorityの使い方 ▶ workloadPriorityClass名が付与され たworkloadが作成される ▶ workloadのpriorityはmutableなの で、「中々実行されないので、priority を上げる」操作も可能!
感想1: コミュニケーションは大事! ▶ コードを書く前に、KEPのdocument上で仕様を詳しく詰めた ▶ そのおかげで、本実装はかなりスムーズだった
感想2: Simple is best ▶ 最初は「時間が経つとPriorityが増える仕組み」を作ろうとしていた ▶ 「個別のニーズに対応しきれないし、負債になる(意訳)」というFBをもらって、方針 転換した
まとめ ▶ pod priorityと独立したPriority classを作成しました ▶ Kueueを使ってみてください!