# Orphaned and overprovisioned resources in EKS clusters

Canonical: https://www.pointfive.co/efficiency-hub/inefficiencies/orphaned-and-overprovisioned-resources-in-eks-clusters

In EKS environments, cluster sprawl can occur when workloads are removed but underlying resources remain.

By: Yisrael Gross

Updated: 2026-09-28

[Cloud Efficiency Hub](https://www.pointfive.co/efficiency-hub) 

# Orphaned and Overprovisioned Resources in EKS Clusters

The short version

In EKS environments, cluster sprawl can occur when workloads are removed but underlying resources remain.

Yisrael Gross

AWS service

[AWS EKS](https://www.pointfive.co/efficiency-hub/cloud-services/aws-eks)

Category

[Compute](https://www.pointfive.co/efficiency-hub/service-category/compute)

Reference

CER-0120

Type

Idle or Unused Resource

## Explanation

Why the waste happens and who it affects.

Common issues include persistent volumes no longer mounted by pods, services still backed by ELBs despite being unused, and overprovisioned nodes for workloads that no longer exist. Node overprovisioning can result from high CPU/memory requests or limits, DaemonSets running on every node, restrictive Pod Disruption Budgets, anti-affinity rules, uneven AZ distribution, or slow scale-down timers. Preventative measures include improving bin packing efficiency, enabling Karpenter consolidation, and right-sizing node instance types and counts. Dev/test namespaces and short-lived environments often accumulate without clear teardown processes, leading to ongoing idle costs.

These remnants contribute to excess infrastructure cost and control plane noise. Since AWS bills independently for each resource (e.g., EBS, ELB, EC2), inefficiencies can add up quickly. Without structured governance or cleanup tooling, clusters gradually fill with orphaned objects and unused capacity.

## Billing model

The pricing dimensions that drive this cost.

EKS clusters incur compute charges through EC2 nodes or Fargate profiles, storage charges from attached EBS volumes, and networking charges from load balancers created via Kubernetes Services. Additional network-level costs can include NAT Gateway hourly and per-GB data processing fees, cross-Availability Zone (AZ) data transfer, and other inter-VPC or internet-bound traffic. Orphaned resources such as unused PVCs (backed by EBS), idle Services (backed by Elastic Load Balancers), and underutilized nodes can generate persistent charges even when no active workloads are running.

## How to detect

6 checks to find it in your estate.

- Identify namespaces that no longer contain active Deployments or Pods

- Review Services still provisioned with ELBs but lacking backend endpoints

- Check for PVCs that are not mounted by any current workloads

- Analyze node utilization to detect consistently underused EC2 nodes, referencing median CPU and memory utilization per node group (targeting 60-70%+ in production)

- Audit test or sandbox namespaces that have not been updated recently

- Verify whether terminated Helm releases or jobs left residual resources

## How to fix

5 ways to remove the waste.

- Remove unused PVCs to deprovision backing EBS volumes (this deletes the volume only when the PV reclaim policy is Delete; with Retain, also delete the Released PV and its EBS volume, after taking a snapshot if the data may be needed)

- Delete idle Services to release associated ELBs and IP addresses

- Clean up inactive namespaces and workloads

- Resize or scale down overprovisioned EC2 nodes, incorporating proactive prevention strategies such as Karpenter consolidation, bin packing optimization, and right-sizing of node instance types and counts

- Implement environment lifecycle policies for dev/test clusters

## Documentation

Vendor references for pricing and configuration.

- [https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html  docs.aws.amazon.com](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

- [https://kubernetes.io/docs/concepts/storage/persistent-volumes/  kubernetes.io](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)

- [https://kubernetes.io/docs/concepts/services-networking/service/  kubernetes.io](https://kubernetes.io/docs/concepts/services-networking/service/)

- [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes.html  docs.aws.amazon.com](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes.html)

## Related inefficiencies

[Browse the library](https://www.pointfive.co/efficiency-hub)

- AWS EKS  CER-0298

### [Stale Completed or Failed Fargate Pods Causing Direct Billing and Capacity Waste](https://www.pointfive.co/efficiency-hub/inefficiencies/stale-completed-or-failed-fargate-pods-causing-direct-billing-and-capacity-waste)

Kubernetes Jobs or CronJobs running on EKS Fargate leave completed or failed pod objects in the cluster indefinitely. Although the workload execution has finished, AWS keeps the underlying Fargate microVM running to allow log inspection...

Compute

- AWS EKS  CER-0192

### [Orphaned Kubernetes Resources in EKS](https://www.pointfive.co/efficiency-hub/inefficiencies/orphaned-kubernetes-resources-e7e68)

In Kubernetes environments, resources such as ConfigMaps, Secrets, Services, and Persistent Volume Claims (PVCs) are often created dynamically by applications or deployment pipelines. When applications are removed or reconfigured, these...

Compute

- AWS EKS  CER-0004

### [Inactive Kubernetes Workload](https://www.pointfive.co/efficiency-hub/inefficiencies/inactive-kubernetes-workload)

Workloads with consistently low CPU and memory usage may no longer serve active traffic or scheduled tasks, but continue reserving resources within the cluster. These idle deployments often remain after project migrations, feature...

Compute

---
Source: the public page above. Product screenshots and illustrative interfaces are examples, not live customer data.

