You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The VPA components (recommender, updater, admission controller) configuration is controlled through global flags. While this works well for simple deployments, it becomes challenging when different workloads require different configuration strategies.
Consider a Kubernetes cluster running both batch jobs processing large amounts of data and user-facing microservices. Each workload type has different resource optimization needs:
Batch processing may benefit from aggressive OOM handling and frequent adjustments, while web services might need more conservative growth to maintain stability. Currently, this requires running multiple VPA recommender instances:
Instead of managing multiple instances with different flags, we could allow configuring these parameters in the VPA object itself ( something similar to this or maybe a simpler approach ):
This approach would allow running a single instance of each VPA component while supporting different configuration needs per workload. The same pattern could potentially extend to updater and admission controller parameters.
Key Questions
How should we think about the global vs per-VPA parameter scope? Some parameters might make more sense to remain global.
What's the right balance between flexibility and complexity? While we could make every flag configurable per-VPA, should we?
I'll be happy to open a KEP for it if seems valid.
/kind feature
The text was updated successfully, but these errors were encountered:
Background
The VPA components (recommender, updater, admission controller) configuration is controlled through global flags. While this works well for simple deployments, it becomes challenging when different workloads require different configuration strategies.
Consider a Kubernetes cluster running both batch jobs processing large amounts of data and user-facing microservices. Each workload type has different resource optimization needs:
Batch processing may benefit from aggressive OOM handling and frequent adjustments, while web services might need more conservative growth to maintain stability. Currently, this requires running multiple VPA recommender instances:
Batch workload recommender
Web services recommender
Proposal
Instead of managing multiple instances with different flags, we could allow configuring these parameters in the VPA object itself ( something similar to this or maybe a simpler approach ):
This approach would allow running a single instance of each VPA component while supporting different configuration needs per workload. The same pattern could potentially extend to updater and admission controller parameters.
Key Questions
I'll be happy to open a KEP for it if seems valid.
/kind feature
The text was updated successfully, but these errors were encountered: