Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kueue入門/Kueue Introduction
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
bells17
April 27, 2022
Programming
2.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kueue入門/Kueue Introduction
#k8sjp 第50回のLT資料です
https://k8sjp.connpass.com/event/244591/
bells17
April 27, 2022
More Decks by bells17
See All by bells17
Kubernetes祭り #2 OP/ED
bells17
0
120
Kubernetes祭り #1 OP/ED
bells17
0
130
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
2k
Amazon VPC CNIに学ぶCNI-LT版
bells17
3
360
コードを読んで理解するko build
bells17
1
780
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
660
スリーシェイクにおけるOSSの取り組み
bells17
4
860
コミュニティ紹介: Kubernetes Meetup Novice
bells17
1
420
社内活動の取り組み紹介 ~ スリーシェイクでこんな取り組みしてます ~
bells17
1
940
Other Decks in Programming
See All in Programming
最近”作らせてる” ローカルAIアプリの話
akit37
0
500
GraphQL の onError と Nullability のこれから
quramy
0
190
残高管理から台帳サービスへの進化
artoy
1
220
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Event is what happens
moro
2
1.7k
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
160
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
120
パスワード再設定メールのURLについて知っておこう
uyuki234
0
190
AI-Powered Domain-Driven Design
ziobrando
0
340
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
7k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
150
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.5k
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
510
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
600
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Color Theory Basics | Prateek | Gurzu
gurzu
1
500
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
We Have a Design System, Now What?
morganepeng
55
8.4k
Side Projects
sachag
456
43k
A better future with KSS
kneath
240
18k
Believing is Seeing
oripsolob
1
250
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_