Upgrade to Pro — share decks privately, control downloads, hide ads and more …

猫でもわかる Vertical Pod Autoscaler #k8sjp / Kuberne...

y_taka_23
September 28, 2018

猫でもわかる Vertical Pod Autoscaler #k8sjp / Kubernetes Meetup Tokyo 13th

Kubernetes Meetup Tokyo #13 で使用したスライドです。

Kubernetes の Scheduler が Pod を配置する Node を決定する際、Pod に指定された Resource Request の値が使用されます。すなわち、Request の値が小さすぎると Node の機能が阻害される虞があり、逆に大きすぎるとリソースを無駄に確保することになるため、現実のリソース使用量をどうやって Request に反映させるかは重要な課題です。

この作業を自動化するため、Vertical Pod Autoscaler (VPA) が提案されています。VPA は Metrics Server を介して得た実データから Request のレンジを推定し、自動で Pod に適用してくれる仕組みです。スライド中ではこの VPA の動作原理を簡潔に解説しています。

内部のアルゴリズム実装まで含めた詳細に興味がある方は、下記ブログ記事も併せてご参照ください。

イベント概要:https://k8sjp.connpass.com/event/100842/
録画:https://www.youtube.com/watch?v=Y8PlL5pGe58 (2:32:43)
ブログ記事:http://ccvanishing.hateblo.jp/entry/2018/10/02/203205

y_taka_23

September 28, 2018
Tweet

More Decks by y_taka_23

Other Decks in Technology

Transcript

  1. P P P P P P P P P P

    P P P P P #k8sjp
  2. P P P P P P P P P P

    P P P P P #k8sjp
  3. Service AX Service BX Service CX P P P P

    P P P P P P P P horizontal
  4. コンポーネント • Recommender ◦ 時系列データから Request の推奨値を算出 ◦ さらにマージンを加えて下限値と上限値も算出 •

    Updater ◦ Request が推奨範囲から外れている Pod を Evict • Admission Controller ◦ Webhook として Pod 作成リクエストを Mutate #k8sjp
  5. VPA object - target - upperBound - lowerBound API Server

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

    Server Admision Controller mutate create #k8sjp
  7. Update Policy • Auto, Recreate ◦ 推奨範囲外になった Pod を Evict

    する ◦ 現状 In-Place な更新がないので両者同じ動作 • Initial ◦ 新規作成時のみ推奨値を設定、Evict は行わない • Off ◦ 推奨値を算出するのみで実際には何もしない #k8sjp
  8. まとめ • Resource Requests をどう決めるか問題 ◦ リソースの集積度、ひいてはコストに直結 • VPA で実データから算出し自動設定

    ◦ カスタムリソースで VPA 管理したい Pod を指定 ◦ Status として Request の推奨範囲が保持される • 推奨値の算出だけ行うことも可能 ◦ 算出と値の反映は独立したコンポーネント #k8sjp