gitmyhub

autoscaler

Go ★ 8.9k updated 1d ago

Autoscaling components for Kubernetes

Official Kubernetes tools that automatically add or remove cloud servers and adjust container resource limits based on your app's actual traffic and usage.

GoKubernetessetup: hardcomplexity 4/5

This repository holds the official autoscaling tools for Kubernetes, the widely used system for running and managing containerized applications across groups of servers. When your application gets more traffic, you want more computing resources to appear automatically, and when traffic drops, you want to stop paying for resources you are not using. That is what this project handles.

There are three main components. The Cluster Autoscaler watches whether your application containers have enough machines to run on. If containers are waiting for space, it asks the cloud provider to add more servers to the cluster. If servers sit idle for long enough, it removes them. It supports the major public cloud providers.

The Vertical Pod Autoscaler looks at how much CPU and memory your running containers actually use versus what they asked for, and adjusts those requests up or down over time so the numbers stay realistic. This helps avoid wasting resources or hitting limits unexpectedly. It is currently in beta.

The Addon Resizer is a simpler version of the vertical autoscaler that adjusts resource requests for a specific deployment based on how many servers are in the cluster, rather than on actual usage data.

All three tools are written in Go and are part of the official Kubernetes project. They are infrastructure-level components meant for engineers or platform teams managing Kubernetes clusters, not end-user applications.

Where it fits