PUBLISHED JAN 22, 2025 • 9 MIN READ

Cost-efficient Kubernetes node strategy at 50-150 engineers

SaaS companies scaling their engineering teams from 50 to 150 developers frequently face runaway Kubernetes cluster expenses. As teams deploy new microservices, staging namespaces, and test builds, their compute node count increases. Aligning cost efficiency with cluster velocity requires a structured node management policy.

The Case Against Cluster Autoscaler

AWS's legacy Cluster Autoscaler (CA) operates by monitoring pending pod requests and provisioning matching node groups. However, CA operates slowly, often taking up to 5 minutes to spin up new servers. This latency prompts developers to set high pod resource reservations, causing cluster nodes to run with low average utilization rates.

Configuring Karpenter for Locality Sizing

We recommend replacing CA with Karpenter, an open-source node provisioning tool designed specifically for Kubernetes. Karpenter interacts directly with AWS EC2 API interfaces, evaluating active pod needs to launch targeted instances in under 40 seconds. This speed allows Karpenter to consolidate idle resources and scale down clusters dynamically.

Pragmatic Karpenter Rules

To implement Karpenter successfully, define clear node templates. Mix Spot instances for staging workloads and build environments while reserving On-Demand instances for transactional databases and customer-facing components.

← Back to all blog posts