Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate VPA instead of HPA for coreDNS workers #3800

Open
ubergesundheit opened this issue Dec 16, 2024 · 2 comments
Open

Investigate VPA instead of HPA for coreDNS workers #3800

ubergesundheit opened this issue Dec 16, 2024 · 2 comments
Assignees

Comments

@ubergesundheit
Copy link
Member

We observed increased latency on clusters with many coredns replicas (100). Right now, coredns uses HPA for scaling replica numbers but we could investigate if using VPA would mitigate such an issue.

@github-project-automation github-project-automation bot moved this to Inbox 📥 in Roadmap Dec 16, 2024
@weatherhog weatherhog moved this from Inbox 📥 to Backlog 📦 in Roadmap Dec 16, 2024
@mcharriere mcharriere moved this from Backlog 📦 to In Progress ⛏️ in Roadmap Jan 7, 2025
@mcharriere mcharriere self-assigned this Jan 7, 2025
@mcharriere
Copy link

mcharriere commented Jan 7, 2025

In that cluster, what I see is that we are maxing HPA due memory consumption.

Memory grows based on cluster size + load, but from the CPU metric we can say each coredns pod is not heavily loaded. When the load is low, cluster size has a bigger representation in the memory consumption, causing HPA to scale up unnecessarily.

We could combine HPA (CPU only) and VPA (mem only); this way we can scale horizontally based on load and allocate more memory on each pod depending on the cluster size.
This is possible, but we need to figure out how to properly test it.

The other issue to solve is that we can't ship the VPA CR in the coredns app.

@mcharriere
Copy link

This is possible, but we need to figure out how to properly test it.

I'll try using https://github.com/coredns/perf-tests/blob/master/kubernetes. Basically what it's doing is creating a bunch of pods, headless services and services to load coredns as we need in our case. If that works we can implement it as a test in our CI.

@teemow teemow moved this from In Progress ⛏️ to Inbox 📥 in Roadmap Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Inbox 📥
Development

No branches or pull requests

2 participants