GKE CPU startup boost: Accelerate app starts without over-provisioning
Google Kubernetes Engine introduces CPU startup boost to dynamically increase CPU during pod initialization and scale back afterward, reducing cold starts without over-provisioning resources.
Applications running on Google Kubernetes Engine (GKE) often require more CPU during startup than steady-state operations, leading to throttling if sized for normal use. Over-provisioning CPU to avoid this wastes resources and increases costs. To address this, GKE now offers CPU startup boost in preview, integrated with the Vertical Pod Autoscaler (VPA).
CPU startup boost temporarily elevates a container's CPU allocation during initialization, then scales it back to baseline once the application is ready, all without restarting containers. This feature leverages Kubernetes In-place Pod Resize (IPPR), which allows dynamic CPU and memory updates on running pods without disruption. GKE version 1.36.0-gke.4447000 or later supports this on Standard and Autopilot clusters.
The feature operates in three phases: admission, startup, and unboosting. During admission, the VPA admission webhook calculates and injects a boosted CPU request into the pod spec. The pod then initializes with the elevated CPU, completing tasks like class loading or JIT compilation without throttling. Once readiness probes pass, the CPU request steps down to baseline while the container continues running.
CPU startup boost is enabled natively on GKE Autopilot and requires Vertical Pod Autoscaling (VPA) to be enabled on GKE Standard. It supports standard Kubernetes controllers like Deployments and StatefulSets. Configuration involves adding a startupBoost section to the VerticalPodAutoscaler manifest, with options to set updateMode to 'Off' or 'InPlaceOrRecreate' based on resource management needs.