Velocity Stream LogoVelocity Stream Logo
Back to Insights
Cloud Cost Optimization

Kubernetes Cost Optimization: 5 Practical Ways to Cut Your EKS Bill by 40%

Kubernetes is incredibly powerful, but if left unoptimized, it will silently devour your AWS budget. We regularly audit EKS clusters that are massively over-provisioned. Here are the 5 exact strategies we use to slash our clients' Kubernetes compute bills by up to 40% without sacrificing availability.

1. Ditch Cluster Autoscaler for Karpenter

If you are still using the default Kubernetes Cluster Autoscaler (CAS), you are likely overpaying. CAS works well enough, but it relies on strict Auto Scaling Groups (ASGs). It struggles to rapidly bin-pack different instance sizes.

Karpenter is AWS's open-source node provisioning project. Instead of scaling up an ASG, Karpenter looks at the exact resources requested by pending pods and dynamically provisions the absolute cheapest, best-fitting EC2 instance type available in milliseconds.

2. Aggressive Spot Instance Usage

Spot instances are up to 90% cheaper than On-Demand instances. By using Karpenter (or AWS Node Termination Handler with CAS), you can run entirely fault-tolerant workloads on Spot instances.

  • Keep critical workloads (like ingress controllers or stateful sets) on On-Demand nodes.
  • Taint your Spot nodes and add tolerations to stateless microservices and background workers.

3. Right-Size Pod Requests and Limits

The most common issue we see is developers blindly requesting 2 CPUs and 4GB of RAM for a microservice that idles at 100m CPU and 200MB of RAM. Since Kubernetes schedules based on requests, not actual usage, your cluster provisions massive nodes to support "phantom" resources that are never used.

Solution: Install Goldilocks or use Datadog/Prometheus to monitor actual usage over 30 days, then aggressively tune requests down to match the 95th percentile of actual usage.

4. Scale Down Non-Production Environments at Night

Why are you paying to run your Staging, Dev, and QA clusters on Saturday at 3 AM?

Implementing a simple CronJob using tools like kube-downscaler or a Lambda function to scale all Deployments and StatefulSets to 0 replicas in non-production environments outside of business hours can instantly save 60% on your dev infrastructure costs.

5. Optimize Cross-AZ Data Transfer

In AWS, data transfer between Availability Zones costs $0.01/GB. In a highly active Kubernetes cluster, pods in AZ-A constantly talk to pods in AZ-B, racking up enormous network bills.

Use Topology Aware Routing in Kubernetes. This forces the kube-proxy to route traffic to endpoints within the same Availability Zone whenever possible, dramatically cutting cross-AZ network costs.

Is Your Cloud Bill Out of Control?

We guarantee we can find significant savings in your AWS infrastructure within our first audit, or the audit is free. Let Velocity Stream optimize your infrastructure.

Request a Free Cost Audit
Chat with an Engineer