Scheduling Amazon EKS Cluster
Can ZopNight schedule Amazon EKS Cluster?
EKS cluster schedules scale every managed node group's Auto Scaling group to zero and restore the saved sizes at start. The control plane cannot be stopped and keeps billing $0.10 an hour, about $73 a month. Clusters running Fargate or hybrid-node profiles are refused outright.
How the stop works
| Field | Value |
|---|---|
| Behaviour | every managed node group's Auto Scaling group is scaled to zero on stop and restored on start. ZopNight refuses to schedule clusters running Fargate or hybrid-node profiles. |
Example schedules
- 0 8 * * 1-5 — Business Hours Start: Start at 8:00 AM on weekdays
- 0 18 * * 1-5 — Business Hours Stop: Stop at 6:00 PM on weekdays
- 0 22 * * * — Night Shutdown: Stop at 10:00 PM every day
- 0 6 * * 1-5 — Morning Startup: Start at 6:00 AM on weekdays
- 0 20 * * 5 — Weekend Shutdown: Stop at 8:00 PM on Friday
- 0 7 * * 1 — Weekend Startup: Start at 7:00 AM on Monday
The $73 floor
An EKS control plane runs whether or not any nodes exist, at $0.10 an hour, roughly $73 a month, per cluster. No schedule touches that. What the schedule drives to zero is the worker compute, which on most clusters dwarfs the control-plane fee, but the floor is worth stating because a fully scheduled cluster still shows up on the invoice every single day.
Managed node groups are the reachable surface
The stop walks each managed node group and scales its Auto Scaling group to zero, recording the sizes for the morning restore. Self-managed node groups, the Auto Scaling groups a team wired up by hand, are invisible to this fan-out and keep running. If a cluster mixes both, the schedule alone will not empty it.
Why Fargate profiles block the schedule
ZopNight refuses to schedule clusters running Fargate or hybrid-node profiles. Fargate pods do not live on node groups, so scaling node groups to zero would leave those pods running and the “stopped” cluster still billing, a half-truth worse than no schedule. Hybrid nodes sit outside AWS’s scaling controls entirely. The refusal is deliberate: better an explicit no than a schedule that appears to work.
Eviction without a destination
Scaling to zero evicts every pod with nowhere to reschedule, including cluster add-ons like CoreDNS and the metrics stack. They sit Pending overnight and start fresh when nodes return. Workloads holding local state on node disks lose it, because node group scale-in terminates the instances.
Stateful pods backed by EBS-based persistent volumes reattach cleanly once nodes return, though the volumes themselves bill all night like any other disk.
The morning is sequential
The restore sets each group back to its recorded size, then nodes must boot, join the cluster and pass readiness before Pending pods place. On a cluster with several groups and slow-starting daemonsets that is easily 5-10 minutes from cron to healthy, so start the schedule ahead of the first team’s morning.