Explanation
Clusters that no longer run active workloads but remain provisioned continue incurring hourly control plane costs and may also maintain associated infrastructure like node groups or VPC components. Inactive clusters often persist after environment decommissioning, project shutdowns, or migrations. Decommissioning unused clusters eliminates unnecessary operational costs and simplifies infrastructure management.
Relevant Billing Model
EKS control planes are billed per cluster per hour, regardless of whether any workloads are actively running. In addition, any underlying compute resources (EC2 nodes or Fargate tasks) continue to accrue charges separately. Maintaining unused EKS clusters results in ongoing hourly billing even when no active workloads are present.
Detection
- Identify EKS clusters with no active Deployments, StatefulSets, DaemonSets, CronJobs, or running pods over a representative time window
- Review node group activity and verify whether any EC2 instances or Fargate tasks are currently attached to the cluster
- Analyze cluster API server logs or CloudWatch metrics to confirm minimal API usage and cluster activity
- Check tagging, cluster creation metadata, and documentation to assess whether the cluster was associated with a deprecated project or environment
- Validate findings with infrastructure owners, DevOps teams, or platform engineering groups before decommissioning
Remediation
Decommission EKS clusters confirmed to be inactive by deleting the cluster through the AWS Console, CLI, or API. Ensure that any dependent resources, such as node groups, VPCs, security groups, or service-linked roles, are also reviewed for cleanup. If a lightweight future usage model is anticipated, consider rearchitecting with AWS EKS Fargate profiles to avoid managing EC2 instances directly.