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
580
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
770
Featured
See All Featured
Gamification - CAS2011
davidbonilla
79
4.9k
Designing Experiences People Love
moore
138
23k
From Idea to $5000 a Month in 5 Months
shpigford
378
46k
A Modern Web Designer's Workflow
chriscoyier
690
190k
Building a Modern Day E-commerce SEO Strategy
aleyda
35
6.8k
We Have a Design System, Now What?
morganepeng
48
7.1k
What the flash - Photography Introduction
edds
67
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
122
18k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
Music & Morning Musume
bryan
46
6k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
GraphQLとの向き合い方2022年版
quramy
43
13k
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を使ってみてください!