Stay organized with collections Save and categorize content based on your preferences.
This document shows you how to select specific compute classes to run workloads that have unique hardware requirements in your Google Kubernetes Engine (GKE) Autopilot clusters. Before reading this document, ensure that you're familiar with the concept of compute classes in GKE Autopilot.
Overview of Autopilot compute classesAutopilot offers compute classes that are designed to run workloads that have specific hardware requirements. These compute classes are useful for workloads such as machine learning and AI tasks, or running real-time high traffic databases.
These compute classes are a subset of the Compute Engine machine series, and offer flexibility beyond the default Autopilot general-purpose compute class. For example, the Scale-Out
class turns off simultaneous multi-threading so that each vCPU is one physical core.
Based on your individual Pod needs, you can configure your regular Autopilot Pods or your Spot Pods to request nodes backed by these compute classes. You can also request specific CPU architecture, such as Arm, in compute classes that support that architecture.
Before you beginBefore you start, make sure that you have performed the following tasks:
gcloud components update
. Note: For existing gcloud CLI installations, make sure to set the compute/region
property. If you use primarily zonal clusters, set the compute/zone
instead. By setting a default location, you can avoid errors in the gcloud CLI like the following: One of [--zone, --region] must be supplied: Please specify location
. You might need to specify the location in certain commands if the location of your cluster differs from the default that you set.To tell Autopilot to place your Pods on a specific compute class, specify the
cloud.google.com/compute-class
label in a
nodeSelectoror a
node affinity rule, such as in the following examples:
nodeSelectorapiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi"
Replace COMPUTE_CLASS
with the name of the compute class based on your use case, such as Scale-Out
. If you select Accelerator
, you must also specify a compatible GPU. For instructions, see Deploy GPU workloads in Autopilot. If you select Performance
, you can optionally select a Compute Engine machine series in the node selector. If you don't specify a machine series, GKE uses the C4 machine series depending on regional availability. For instructions, see Run CPU-intensive workloads with optimal performance.
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: terminationGracePeriodSeconds: 25 containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi" ephemeral-storage: "1Gi" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/compute-class operator: In values: - "COMPUTE_CLASS"
Replace COMPUTE_CLASS
with the name of the compute class based on your use case, such as Scale-Out
. If you select Accelerator
, you must also specify a compatible GPU. For instructions, see Deploy GPU workloads in Autopilot. If you select Performance
, you can optionally select a Compute Engine machine series in the node selector. If you don't specify a machine series, GKE uses the C4 machine series depending on regional availability. For instructions, see Run CPU-intensive workloads with optimal performance.
You can also request specific compute classes for your Spot Pods.
Specify resource requestsWhen you choose a compute class, make sure that you specify resource requests for your Pods based on the Minimum and maximum resource requests for your selected class. If your requests are less than the minimum, Autopilot automatically scales your requests up. However, if your requests are greater than the maximum, Autopilot does not deploy your Pods and displays an error message.
Choose a CPU architectureSome compute classes support multiple CPU architectures. For example, the Scale-Out
class supports both Arm and x86 architectures. If you don't request a specific architecture, Autopilot provisions nodes that have the default architecture of the specified compute class. If your Pods need to use a different architecture, request that architecture in your node selector or node affinity rule, alongside your compute class request. The compute class that you request must support the CPU architecture you specify.
For instructions, refer to Deploy Autopilot Pods on Arm architecture.
What's nextExcept as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-12 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4