Slide 1

Slide 1 text

猫でもわかる Vertical Pod Autoscaler チェシャ猫 (@y_taka_23) Kubernetes Meetup Tokyo #13 (2018/09/28) #k8sjp

Slide 2

Slide 2 text

Pod の Resource Request #k8sjp

Slide 3

Slide 3 text

P P P P P P P P P P P P P P P #k8sjp

Slide 4

Slide 4 text

P P P P P P P P P P P P P P P #k8sjp

Slide 5

Slide 5 text

どうやって値を決めるか? #k8sjp

Slide 6

Slide 6 text

Vertical Pod Autoscaler #k8sjp

Slide 7

Slide 7 text

Service AX Service BX Service CX P P P P P P P P P

Slide 8

Slide 8 text

Service AX Service BX Service CX P P P P P P P P P P P P horizontal

Slide 9

Slide 9 text

Service AX Service BX Service CX P P P P P P P P P vertical

Slide 10

Slide 10 text

コンポーネント ● Recommender ○ 時系列データから Request の推奨値を算出 ○ さらにマージンを加えて下限値と上限値も算出 ● Updater ○ Request が推奨範囲から外れている Pod を Evict ● Admission Controller ○ Webhook として Pod 作成リクエストを Mutate #k8sjp

Slide 11

Slide 11 text

#k8sjp

Slide 12

Slide 12 text

VPA object - target - upperBound - lowerBound API Server P #k8sjp

Slide 13

Slide 13 text

VPA object - target - upperBound - lowerBound API Server P Recommender metrics estimate #k8sjp

Slide 14

Slide 14 text

VPA object - target - upperBound - lowerBound API Server Updater evict #k8sjp

Slide 15

Slide 15 text

VPA object - target - upperBound - lowerBound API Server #k8sjp create

Slide 16

Slide 16 text

P VPA object - target - upperBound - lowerBound API Server Admision Controller mutate create #k8sjp

Slide 17

Slide 17 text

Update Policy ● Auto, Recreate ○ 推奨範囲外になった Pod を Evict する ○ 現状 In-Place な更新がないので両者同じ動作 ● Initial ○ 新規作成時のみ推奨値を設定、Evict は行わない ● Off ○ 推奨値を算出するのみで実際には何もしない #k8sjp

Slide 18

Slide 18 text

まとめ ● Resource Requests をどう決めるか問題 ○ リソースの集積度、ひいてはコストに直結 ● VPA で実データから算出し自動設定 ○ カスタムリソースで VPA 管理したい Pod を指定 ○ Status として Request の推奨範囲が保持される ● 推奨値の算出だけ行うことも可能 ○ 算出と値の反映は独立したコンポーネント #k8sjp

Slide 19

Slide 19 text

Let’s Think Vertically! Presented by チェシャ猫 (@y_taka_23) #k8sjp