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
630
kueueに新しいPriorityClassを足した話
kubernetes meetup tokyoで発表しました
Hiroyuki Moriya
October 20, 2023
Tweet
Share
More Decks by Hiroyuki Moriya
See All by Hiroyuki Moriya
IVRyエンジニア忘年LT大会2024 LLM監視の最前線
gekko0114
1
150
JobSet超入門
gekko0114
1
820
Featured
See All Featured
Done Done
chrislema
181
16k
Docker and Python
trallard
42
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
How STYLIGHT went responsive
nonsquared
95
5.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Producing Creativity
orderedlist
PRO
341
39k
Making the Leap to Tech Lead
cromwellryan
133
9k
Rails Girls Zürich Keynote
gr2m
94
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Designing for humans not robots
tammielis
250
25k
Writing Fast Ruby
sferik
628
61k
Building Adaptive Systems
keathley
38
2.3k
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を使ってみてください!