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
23
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
21
基盤モデルのアーキテクチャを改造してみよう - 時系列基盤モデルのマルチモーダル拡張事例の紹介 -
himura
1
1.3k
Python アプリケーションの裏側とその機序 -WSGI, ASGI 編-
himura
0
99
人生における期待効用の最大化について考える
himura
0
130
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
240
Being A Developer After 40
akosma
91
590k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
290
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
390
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Why Our Code Smells
bkeepers
PRO
340
58k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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 - 何が嬉しいか - 図解 - 実装の説明 - ハマりポイント - テスト