EKS, GKE, and AKS bills consistently surprise enterprises. The same 12-step audit process recovers 25–40% routinely.
- 01Install KubeCost or OpenCost
Without per-namespace cost visibility, audits are guesses.
- 02Run kubectl top across all namespaces
Find the gap between requested and actual usage.
- 03Right-size requests + limits with VPA recommendations
Vertical Pod Autoscaler in recommendation mode for 7 days first.
- 04Switch to Karpenter (or Cluster Autoscaler v2)
Bin-packing is dramatically more efficient.
- 05Adopt spot for stateless workloads via topology spread
60-90% savings on those workloads.
- 06Move PVs to gp3 from gp2
~20% storage savings, faster IO.
- 07Audit LoadBalancer services
One ALB per environment via ingress controllers, not per-service.
- 08Tighten log levels
DEBUG in prod is the silent #1 cost in CloudWatch Logs.
- 09Review HPA target utilization
Default 80% is wasteful. 65–70% for compute, 75–80% for IO-bound.
- 10Run a Pod Disruption Budget audit
Misconfigured PDBs prevent node consolidation.
- 11Enforce resource quotas at namespace level
Stop noisy-neighbor inflation.
- 12Set up weekly cost reports per namespace + Slack alerts
Ownership is the only thing that keeps savings sticky.
Karpenter Provisioner Example
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: spot-pool
spec:
template:
spec:
requirements:
- key: kubernetes.io/arch
operator: In
values: ["arm64", "amd64"]
- key: karpenter.sh/capacity-type
operator: In
values: ["spot", "on-demand"]
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["c", "m", "r"]
nodeClassRef:
name: default
limits:
cpu: 1000
disruption:
consolidationPolicy: WhenEmptyOrUnderutilized
consolidateAfter: 30s
Ready to optimize your cloud or AI footprint?
Book a free 30-minute architecture review. We will deliver a written cost-and-architecture audit within 48 hours.
Need help with Kubernetes cost optimization?
Ohveda runs free 30-minute architecture reviews. We will identify your top opportunities in writing within 48 hours — at no cost.