Step-by-step guide to scheduling Google Kubernetes Engine node pool scaling. Scale pools to zero at night and restore them before your team starts.
This is the practical version, the one you can follow in a single sitting. It starts read-only, touches no production resource by default, and every step is reversible, so there is no point at which you are committed to something you cannot undo. Budget about 15 minutes. Before you start you will want: A GCP project with GKE clusters; Service account with Kubernetes Engine Admin role; A ZopNight account.
The steps
- Connect your GCP project.
- Review GKE cluster topology.
- Configure node pool scaling schedules.
- Handle persistent workloads.
- Test and validate.
Why this is safe to do today
The reason this is a low-stakes change is that nothing here is destructive. Scheduling stops and starts resources; it never deletes them, and your data persists across a stop exactly as it does across a normal reboot. Production is excluded by default, actions run in dependency order, and every state change is logged with what triggered it.
If you want the fuller context behind this task, the FinOps guide covers where it fits, and the AWS EC2 scheduling page shows the same loop applied to a specific resource.
Getting started
Getting started is intentionally low-stakes:
- Connect your cloud provider with a read-only role. Nothing is scheduled or changed at this stage.
- Let ZopNight discover your non-production resources and review exactly what it found, filtered by account, region, and status.
- Create a schedule in your timezone and attach the non-production resources or groups you want it to cover.
- Watch the first cycle run, with Slack, Teams, or Google Chat notifications on every start, stop, and failure, then layer in idle cleanup and guided rightsizing.
Production stays excluded by default throughout, and because discovery and recommendations are read-only, you can prove the value before you enable a single action.
Questions we get a lot.
If yours isn't here, email us and we'll answer directly.
Is the GKE control plane free when node pools are scaled to zero?
GKE Autopilot charges only for pod resources, so scaling to zero pods means near-zero cost. GKE Standard has a free tier for one zonal cluster. Additional clusters cost $0.10/hr for the control plane regardless of node count.
Does ZopNight coordinate with GKE cluster autoscaler?
Yes. ZopNight adjusts the node pool minimum and maximum settings on schedule. During off-hours, both min and max are set to zero so the autoscaler cannot scale up. During on-hours, original settings are restored.