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入門/Kueue Introduction
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
bells17
April 27, 2022
Programming
2
2.3k
Kueue入門/Kueue Introduction
#k8sjp 第50回のLT資料です
https://k8sjp.connpass.com/event/244591/
bells17
April 27, 2022
Tweet
Share
More Decks by bells17
See All by bells17
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
840
Amazon VPC CNIに学ぶCNI-LT版
bells17
2
250
コードを読んで理解するko build
bells17
1
540
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
510
スリーシェイクにおけるOSSの取り組み
bells17
4
620
コミュニティ紹介: Kubernetes Meetup Novice
bells17
1
330
社内活動の取り組み紹介 ~ スリーシェイクでこんな取り組みしてます ~
bells17
1
740
モダンインフラの基礎を学ぼう!実践コンテナ入門
bells17
2
470
Kubernetes Code Contribution入門
bells17
5
1.4k
Other Decks in Programming
See All in Programming
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
330
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
400
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
PRO
0
180
2025年の活動の振り返り
hideg
0
110
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
160
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.6k
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
170
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
220
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
1
160
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
190
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
110
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
How GitHub (no longer) Works
holman
316
140k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
290
Evolving SEO for Evolving Search Engines
ryanjones
0
140
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
The SEO Collaboration Effect
kristinabergwall1
0
370
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Optimizing for Happiness
mojombo
379
71k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Transcript
Kueue⼊⾨ Kubernetes Meetup Tokyo #50(2022/04/27) @bells17
▶ @bells17 ▶ Software Engineer ▶ 普段やってること: + Kubernetes 関連コンポーネントの開発
+ Kubernetes as a Service開発 ▶ Kubernetes SIG-Docs Japanese localization reviewer ▶ Kubernetes Internal Organizer ▶ #kubenews ▶ @bells17_
#kubenews ほぼ毎週⾦曜22:00~YouTubeで配信中 Kubernetes/Cloud Native関連のニュースを中⼼に技術雑談してます
このセッションでわかること ▶ Kueueというアプリケーションがどんなものかを簡単に紹介できればと思ってます
Kueueとは?
Kueue ▶ Kubernetesネイティブなバッチ(ジョブ)スケジューラー ▶ Jobリソースを(ある意味)拡張することでJobリソースのキューイングの 仕組みを提供してくれるアプリケーションになっている ▶ キュー管理者は予めResourceFlavor/ClusterQueue/Queueリソースを設定 しておくことで、バッチユーザーが設定したキューを利⽤することができる
Kueue Overview https://bit.ly/kueue-controller-design
Kueue ▶ 以下のようなポイントはKubernetes⾃⾝の仕組みを使いつつ実現している + Jobリソースのマネジメントはkube-controller-managerを利⽤ + Podのスケジューリングはkube-schedulerを利⽤ ▶ Volcano(kube-batch)のJob API、ジョブライフサイクル管理、スケジューラー
といったコアKubernetesにすでに存在する多くの機能を 再実装している点を問題に感じたのがKueueを作成した背景の1つのよう ▶ ドキュメントなどから主なユースケースとしてMLワークロードのような ⼤規模バッチを多数同時並列で実⾏したいようなユースケースにおいて バッチの実⾏順序のコントロールやキューイングなどを⾏うため利⽤する想定? + ここらへん詳しい⼈教えてください (Design Docs読んでもなんとなくしか想像できなかった)
Kueue ▶ Kubernetesコミュニティの #wg-batch により開発されているよう ▶ 2022/4/12にv0.1.0がリリースされたばかり ▶ リポジトリ: https://github.com/kubernetes-sigs/kueue
+ 今回調べたのはv0.1.0のバージョン + https://github.com/kubernetes-sigs/kueue/tree/v0.1.0 ▶ Design Docs(controller): https://bit.ly/kueue-controller-design ▶ Design Docs(API): https://bit.ly/kueue-apis ▶ Old Proposal: https://bit.ly/k8s-job-management
ちょっとだけKueue Architecture
デモ
k8sクラスターを構築~Kueueをインストール LJOEDSFBUFDMVTUFSOBNFLVFVFFYBNQMF LVCFDUMBQQMZGIUUQTHJUIVCDPNDFSUNBOBHFSDFSUNBOBHFSSFMFBTFT EPXOMPBEWDFSUNBOBHFSZBNM LVCFDUMXBJUGPSDPOEJUJPOBWBJMBCMFUJNFPVUTODFSUNBOBHFS EFQMPZNFOUTDFSUNBOBHFSXFCIPPL LVCFDUMBQQMZLHJUIVCDPNLVCFSOFUFTTJHTLVFVFDPOpHEFGBVMU W
状態チェック LVCFDUMHFUOPEF /".&45"56430-&4"(&7&34*0/ LVFVFFYBNQMFDPOUSPMQMBOF3FBEZDPOUSPMQMBOF NBTUFSNTW LVCFDUMOLVFVFTZTUFNHFUEFQMPZ /".&3&"%:6150%"5&"7"*-"#-&"(& EFQMPZNFOUBQQTLVFVFDPOUSPMMFSNBOBHFSNT LVCFDUMHFUDSEcHSFQLVFVFYLTJP DMVTUFSRVFVFTLVFVFYLTJP5;
RVFVFTLVFVFYLTJP5; SFTPVSDFqBWPSTLVFVFYLTJP5; XPSLMPBETLVFVFYLTJP5;
Kueueに必要なカスタムリソースを設定 DBU&04TFUUJOHZBNM BQJ7FSTJPOLVFVFYLTJPWBMQIB LJOE3FTPVSDF'MBWPS NFUBEBUB OBNFEFGBVMU BQJ7FSTJPOLVFVFYLTJPWBMQIB LJOE2VFVF NFUBEBUB
OBNFTQBDFEFGBVMU OBNFNBJO TQFD DMVTUFS2VFVFDMVTUFSUPUBM &04 DBU&04TFUUJOHZBNM BQJ7FSTJPOLVFVFYLTJPWBMQIB LJOE$MVTUFS2VFVF NFUBEBUB OBNFDMVTUFSUPUBM TQFD OBNFTQBDF4FMFDUPS\^NBUDIBMM SFTPVSDFT OBNFDQV qBWPST OBNFEFGBVMU RVPUB NJO &04 LVFCDUMBQQMZa GTFUUJOHTZBNM
Jobを作成 DBU&04KPCZBNM BQJ7FSTJPOCBUDIW LJOE+PC NFUBEBUB HFOFSBUF/BNFTBNQMFKPC BOOPUBUJPOT LVFVFYLTJPRVFVFOBNFNBJORVFVF໊Λࢦఆ TQFD
QBSBMMFMJTN DPNQMFUJPOT TVTQFOEUSVFUSVFʹ͢Δ͜ͱͰ,VFVFͷॲཧରʹ UFNQMBUF TQFD DPOUBJOFST OBNFEVNNZKPC JNBHFHDSJPLTTUBHJOHQFSGUFTUTTMFFQMBUFTU BSHT<T> SFTPVSDFT SFRVFTUT DQVl SFTUBSU1PMJDZ/FWFS &04 LVCFDUMDSFBUFGKPCZBNM
Jobを確認する LVCFDUMHFUKPCPZBNM BQJ7FSTJPOW JUFNT BQJ7FSTJPOCBUDIW LJOE+PC NFUBEBUB BOOPUBUJPOT LVFVFYLTJPRVFVFOBNFNBJO HFOFSBUF/BNFTBNQMFKPC
MBCFMT DPOUSPMMFSVJEGDFDBBGBFGD KPCOBNFTBNQMFKPCMK OBNFTBNQMFKPCMK OBNFTQBDFEFGBVMU ʜ TQFDTVTQFOEUSVF͕ফ͑ͯΔ CBDLP⒎-JNJU DPNQMFUJPOT QBSBMMFMJTN TFMFDUPS NBUDI-BCFMT DPOUSPMMFSVJEGDFDBBGBFGD ʜ
Podが起動する LVCFDUMHFUQPE /".&3&"%:45"5643&45"354"(& TBNQMFKPCMKKGL$PNQMFUFENT TBNQMFKPCMKNGLS$PNQMFUFENT TBNQMFKPCMKWONQ$PNQMFUFENT
デモまとめ ▶ Kueueをインストールする ▶ ResourceFlavor/ClusterQueue/QueueリソースをセットアップするとKueueを利 ⽤する準備が完了 ▶ Jobリソースを以下のように設定して作成するとKueueがJobの スケジューリングを管理 ▶
“kueue.x-k8s.io/queue-name”アノテーションで利⽤するQueueを指定 ▶ .spec.suspend: true に設定してJobを作成 ▶ 後はKueueがClusterQueueなどの設定に応じてJobをスケジューリング (Jobの.spec.suspendをfalseに変更する) ▶ 以下のような仕組みはKubernetesの機能をそのまま利⽤ ▶ Job→Podリソースの作成 ▶ NodeへのPodのスケジューリング
まとめ
まとめ ▶ Kueueの全体像をデモを交えながら簡単に説明しました ▶ 本当はKueueの実際の実装に即したアーキテクチャなどやClusterQueueの各種機能の紹介 も⾏いたかったのですが、時間の関係で別で⾏えればと思います ▶ MLワークロード扱かったりVolcanoを触ったりしたことないので、ここらへん詳しい⽅ Kueueの印象とか使い勝⼿良さそうかとか教えてください! ▶
調査メモ: https://zenn.dev/bells17/scraps/16625963e51d23 ▶ 検証リポジトリ: https://github.com/bells17/tmp/tree/main/kueue-example
Thanks / Question? ▶ @bells17 ▶ Slide: https://speakerdeck.com/bells17 ▶ @bells17_