How we created our custom VPA controller [ukr]

In this presentation, we will explore a practical use case of implementing effective infrastructure autoscaling using HPA, VPA, and Cluster Autoscaler.

While working with standard VPA, we encountered several limitations, including a lack of flexibility in configuring calculation intervals and conflicts when running concurrently with HPA. Consequently, we decided to develop our own custom VPA controller.

In our new solution, we:

  • Achieved stable coexistence of VPA and HPA on the same resources.
  • Implemented a filtering mechanism for transient CPU spikes during the pod startup phase.
  • Optimized the architecture by consolidating the functionality of three standard components into a single pod.
  • Leveraged the new In-Place Pod Resize capabilities introduced in Kubernetes 1.33.

Key result: Optimized resource consumption and a 20–40% reduction in infrastructure costs.

Kostiantyn Tomakh
DevOps Engineer, Uklon
  • 20 years in IT (including 8+ years in DevOps)
  • Background in Java and Python development
  • AWS Certified: Solutions Architect & Developer Associate
  • Kubernetes Certified: CKA & CKAD
  • Cisco Certified Network Professional (CCNP)
Sign in
Or by mail
Sign in
Or by mail
Register with email
Register with email
Forgot password?