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
bells17
April 27, 2022
Programming
1
1.8k
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
コミュニティ紹介: Kubernetes Meetup Novice
bells17
1
92
社内活動の取り組み紹介 ~ スリーシェイクでこんな取り組みしてます ~
bells17
0
410
モダンインフラの基礎を学ぼう!実践コンテナ入門
bells17
2
250
Kubernetes Code Contribution入門
bells17
5
1.1k
Dev ContainersとTestcontainers
bells17
3
500
アーキテクチャから学ぶKubernetesの全体像
bells17
20
13k
Controllerを作ってみよう ~ Kubernetes Controllerハンズオン ~
bells17
7
1.1k
Kubernetesに対する理解を高めてKubernetesの「わからない」を減らそう
bells17
19
4.7k
KubernetesとCoreDNSについて理解する
bells17
3
2.7k
Other Decks in Programming
See All in Programming
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
280
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
tidymodelsによるtidyな生存時間解析 / Japan.R2024
dropout009
1
770
情報漏洩させないための設計
kubotak
1
130
Jakarta EE meets AI
ivargrimstad
0
240
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
180
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
330
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
230
Security_for_introducing_eBPF
kentatada
0
110
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
330
Featured
See All Featured
Designing for Performance
lara
604
68k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
GraphQLとの向き合い方2022年版
quramy
44
13k
Typedesign – Prime Four
hannesfritz
40
2.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Gamification - CAS2011
davidbonilla
80
5.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Visualization
eitanlees
146
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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_