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
CA_kube-scheduler
Search
himura467
October 24, 2024
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CA_kube-scheduler
himura467
October 24, 2024
More Decks by himura467
See All by himura467
Figma MCP 勉強会
himura
0
23
基盤モデルのアーキテクチャを改造してみよう - 時系列基盤モデルのマルチモーダル拡張事例の紹介 -
himura
1
1.4k
Python アプリケーションの裏側とその機序 -WSGI, ASGI 編-
himura
0
110
人生における期待効用の最大化について考える
himura
0
130
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
The Curious Case for Waylosing
cassininazir
1
500
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
First, design no harm
axbom
PRO
2
1.3k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
The Pragmatic Product Professional
lauravandoore
37
7.4k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
Prompt Engineering for Job Search
mfonobong
0
450
A designer walks into a library…
pauljervisheath
211
25k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Transcript
CyberAgent MLPlatform インターン 最終発表 設楽 朗人
- FragileGroupScheduling の isAllPrioritySame 関数において PreemptionPolicy == Never であれば許容するように修正 -
FragileGroupScheduling の PreFilter Phase において、Group 内 Pod 間の Affinity / Anti-Affinity が満たされているかを早期に 検査するように機能を追加 やったこと
PreemptionPolicy
PreemptionPolicy PreemptionPolicy が nil の場合はデフォルトが指定される デフォルトは LowerPriority らしい
PreemptionPolicy テストケースに Higher Priority であり Preemption が Never である Pod
を追加
PreemptionPolicy テストケースに Higher Priority であり Preemption が Never である Pod
を追加 ↓ テストケースが正しく通ることを確認
Affinity / Anti-Affinity 何が嬉しいか PodGroup は全て Bind されるか全て棄却されるか のどちらかであるため、 PodGroup
内に Pod 間で Affinity / Anti-Affinity を違反する Pod が 一つでも存在した時点で全て棄却されることが確定する。 これを PodGroup の中の一つの Pod を見るだけで判断できる ようになれば、パフォーマンスの向上が期待できるのではないか
Affinity / Anti-Affinity
Affinity / Anti-Affinity
Affinity / Anti-Affinity PodGroup
Affinity / Anti-Affinity PodGroup 相互の Affinity 関係を検証
Affinity / Anti-Affinity PodGroup ダメだったらその時点で Group 全て棄却
Affinity / Anti-Affinity PreFilter 関数で Group 内の Pod の Affinity
をチェック
Affinity / Anti-Affinity 実装は本家 Kubernetes の kubernetes/pkg/scheduler/framework/plugins/interpodaffinity/filtering.go の podMatchesAllAffinityTerms 関数をほぼパクった
Affinity / Anti-Affinity ハマりポイント Affinity Term は自身には適用すべきでないので、Kubernetes 本家のように Terms をまとめて検査することができなかった。
↓ UID で判定して自身以外の Pod のみを Term に適用するように修正した。
Affinity / Anti-Affinity テスト 新たなテストを定義し、 - GroupSize を 2 とした
basic な Pod - PodAffinity として GroupSize=2 を指定した Pod - PodAffinity として GroupSize=3 を指定した Pod - PodAntiAffinity として GroupSize=2 を指定した Pod - PodAntiAffinity として GroupSize=3 を指定した Pod を宣言
Affinity / Anti-Affinity テスト - Affinity Pod が PodGroup に含まれており、Affinity
に違反しないケース - Affinity Pod が PodGroup に含まれており、Affinity に違反するケース - Anti-Affinity Pod が PodGroup に含まれており、Anti-Affinity に違反しないケース - Anti-Affinity Pod が PodGroup に含まれており、Anti-Affinity に違反するケース - Affinity Pod, Anti-Affinity Pod が含まれており、違反しないケース - Affinity Pod, Anti-Affinity Pod が含まれており、Affinity に違反するケース - Affinity Pod, Anti-Affinity Pod が含まれており、Anti-Affinity に違反するケース - Affinity Pod, Anti-Affinity Pod が含まれており、どちらにも違反するケース において、正しく動作することを確認
Affinity / Anti-Affinity テスト テスト網羅性は ふわっと
まとめ - やったこと - PreemptionPolicy - PreemptionPolicy が nil の場合の話
- テストを書いたよ、という話 - Affinity / Anti-Affinity - 何が嬉しいか - 図解 - 実装の説明 - ハマりポイント - テスト