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
KubeConEU 2019 recap - VPA in-place update
Search
Shunya Murata
June 18, 2019
Programming
2.6k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KubeConEU 2019 recap - VPA in-place update
Shunya Murata
June 18, 2019
More Decks by Shunya Murata
See All by Shunya Murata
Kubernetes v1.19 Updates
shmurata
3
1.4k
プロダクションレディを目指した Kubernetes クラスタのアップグレード戦略/Strategy to upgrade Kubernetes clusters in Production
shmurata
9
4.5k
Kubernetes上でアプリケーションを 運用するまでの道のり/The way to run applications with Kubernetes
shmurata
15
3k
Kubernetes Operator で実現する NoOps の世界 / How we accomplish NoOps by Kubernetes Operator.
shmurata
20
4.3k
180715-line-meetup.pdf
shmurata
3
1.1k
ThirdPartyResource を使った Kubernetes as a Service の実装
shmurata
2
3.4k
Other Decks in Programming
See All in Programming
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.2k
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
150
Google Apps Script で Ruby を動かす
kawahara
0
120
継続モナドとリアクティブプログラミング
yukikurage
3
660
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
140
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
620
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
170
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
260
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.3k
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
480
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.4k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
390
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
220
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
580
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
400
Tell your own story through comics
letsgokoyo
1
1k
Designing Experiences People Love
moore
143
24k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
360
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Transcript
KubeConEU 2019 Recap Restart-Free Vertical Scaling for Kubernetes Pods Resize
Your Pods w/o Disruptions aka How to Have a Cake and Eat a Cake Kuberentes Meetup Tokyo #20 / June 18, 2019 Shunya Murata <
[email protected]
> @shmurata_
Shunya Murata/ @shmurata_ ▶ ゼットラボ株式会社 ソフトウェアエンジニア ▶ 対外的な主な取り組み + ThirdPartyResourceを使ったKubernetes
as a Serviceの実装 + Kubernetes Meetup Tokyo#3 + Kubernetes実践⼊⾨ 2
▶ アジェンダ 1. VerticalPodAutoscaler の現状 2. セッションの紹介 3. 弊社でのVPAの利⽤事例 4.
まとめ 3
VerticalPodAutoscalerの現状
▶ pod.spec.resource.requests ▶ Podが使⽤するリソース量を指定して予約 することができる + この値を元にSchedulerがいいかんじ にNodeにPodをスケジュールする ▶ この指定は多くても少なくてもダメ
5 apiVersion: apps/v1 kind: Pod spec: containers: - image: nginx name: nginx resources: requests: cpu: 100m memory: 256Mi
▶ VerticalPodAutoscaler ▶ Podの垂直スケールを⾃動的に⾏う ための仕組み + 実際のリソース利⽤率から値を計 算してresource.requestsを設定す る ▶
現在(2019/6/18時点)は v0.5.1 が最新 + beta フェーズ 6 apiVersion: autoscaling.k8s.io/v1beta2 kind: VerticalPodAutoscaler spec: targetRef: apiVersion: apps/v1 kind: Deployment name: nginx updatePolicy: updateMode: "Auto"
▶ VerticalPodAutoscalerの構成と動き 7 VPA recommender VPA updater VPA Admission Plugin
metrics server 1.collect metrics 2. update VPA status 3. watch VPA status and Pod 4. evict pod 5. update resource.requests
▶ VerticalPodAutoscalerの課題 ▶ resource.requestsの変更をする場合にPodの再起動が必要 + 再起動なしにresource.requestを変更する仕様が検討されている + in-place update 8
KubeConEU2019セッションの紹介
▶ https://static.sched.com/hosted_files/kccnceu19/31/RestartFreeVerticalScaling.pdf 10
▶ https://static.sched.com/hosted_files/kccnceu19/cf/Cake%20presentation.pdf 11
弊社での取り組み
▶ Background ▶ Kubernetes クラスタ: 200+ + クラスタごとにNode flavorや数が異なる ▶
すべてのクラスタに共通でデプロイするアドオンがある + CoreDNS, IngressController, metrics-server, Prometheus,Grafana, 13
▶ Problem ▶ アドオンのresource.requestの設定が難しい + クラスタの規模やユーザの利⽤⽅法によって必要な量が異なる + クラスタの規模についてはaddon-resizerで対応できるが… + https://github.com/kubernetes/autoscaler/tree/master/addon-resizer
14
▶ Try 15 ઃఆมߋ
▶ Feedback ▶ VerticalPodAutoscaler + resource.requests変更時に再起動が必要 + データを保持していないアドオンは問題ないがデータを保持しているアド オンが問題 +
Prometheusはローカルにデータを持っているため再起動するとメトリクス をロスト + PersistentVolumeは様々な事情によってまだ導⼊できていない + UpdateMode: Initial で回避 16
▶ in-place update のその後 ▶ Migrate Karol Golab's KEP for
in-place update of pod resources to k/ enhancements + https://github.com/kubernetes/enhancements/pull/686 17
▶ まとめ ▶ VPAの概要と現状 ▶ in-place updateの対応 ▶ 弊社でVPAを採⽤しようとしている事例 18
Fin.