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
CA_kube-scheduler
Search
himura467
October 24, 2024
30
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
22
基盤モデルのアーキテクチャを改造してみよう - 時系列基盤モデルのマルチモーダル拡張事例の紹介 -
himura
1
1.4k
Python アプリケーションの裏側とその機序 -WSGI, ASGI 編-
himura
0
100
人生における期待効用の最大化について考える
himura
0
130
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
Crafting Experiences
bethany
1
260
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
950
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Writing Fast Ruby
sferik
630
63k
4 Signs Your Business is Dying
shpigford
187
23k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
WCS-LA-2024
lcolladotor
0
800
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
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 - 何が嬉しいか - 図解 - 実装の説明 - ハマりポイント - テスト