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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hiroyuki Moriya
October 20, 2023
790
0
Share
kueueに新しいPriorityClassを足した話
kubernetes meetup tokyoで発表しました
Hiroyuki Moriya
October 20, 2023
More Decks by Hiroyuki Moriya
See All by Hiroyuki Moriya
少人数プロダクト開発において SRE業務を増やさない工夫
gekko0114
0
910
音声データ解析パイプラインの Software Engineering / Context Engineering
gekko0114
0
290
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
490
IVRyエンジニア忘年LT大会2024 LLM監視の最前線
gekko0114
1
400
JobSet超入門
gekko0114
1
1.1k
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
First, design no harm
axbom
PRO
2
1.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Faster Mobile Websites
deanohume
310
31k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
Facilitating Awesome Meetings
lara
57
6.8k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.6k
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を使ってみてください!