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

KubeConEU 2019 recap - VPA in-place update

KubeConEU 2019 recap - VPA in-place update

Shunya Murata

June 18, 2019
Tweet

More Decks by Shunya Murata

Other Decks in Programming

Transcript

  1. 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_
  2. ▶ 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"
  3. ▶ 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
  4. ▶ Background ▶ Kubernetes クラスタ: 200+ + クラスタごとにNode flavorや数が異なる ▶

    すべてのクラスタに共通でデプロイするアドオンがある + CoreDNS, IngressController, metrics-server, Prometheus,Grafana, 13
  5. ▶ Feedback ▶ VerticalPodAutoscaler + resource.requests変更時に再起動が必要 + データを保持していないアドオンは問題ないがデータを保持しているアド オンが問題 +

    Prometheusはローカルにデータを持っているため再起動するとメトリクス をロスト + PersistentVolumeは様々な事情によってまだ導⼊できていない + UpdateMode: Initial で回避 16
  6. ▶ 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