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)