This document explains how to run Arm workloads on Google Kubernetes Engine (GKE).
You can run Arm workloads in GKE
Autopilot clusters using the Performance or Scale-Out compute
classes,
or in GKE Standard
clusters using the C4A,
N4A
(Preview), or Tau
T2A machine series.
You can run single-architecture Arm images or multi-architecture (multi-arch) images compatible with both x86 and Arm processors. To learn about the benefits of Arm, see Arm VMs on Compute.
See the following for more information about choosing workloads to deploy on Arm and preparing those workloads for deployment:
Choosing workloads to run on Arm: Consider the benefits of the following machine types when choosing workloads to run on Arm. For more information about what types of workloads work well with each of these machine series, see the table in General-purpose machine family for Compute Engine:
- C4A nodes provide Arm-based compute which achieves consistently high performance for your most performance-sensitive Arm-based workloads.
- N4A nodes provide Arm-based compute that balances price and performance.
- T2A nodes are appropriate for more-flexible workloads, or workloads which rely on horizontal scale-out.
Deploying across architectures: With GKE, you can use multi-arch images to deploy one image manifest across nodes with different architectures, including Arm.
- To ensure that your container image is Arm-compatible and can run on your targeted architectures, see Build multi-architecture images for Arm workloads.
- To follow a tutorial for using multi-arch images to deploy across architectures, see Migrate x86 application on GKE to multi-arch with Arm.
Preparing Arm workloads for deployment: Once you have an Arm-compatible image, use node affinity rules and node selectors to make sure your workload is scheduled to nodes with a compatible architecture type.
- Autopilot clusters: see Deploy Autopilot workloads on Arm architecture.
- Standard clusters: see Prepare an Arm workload for deployment.
Requirements and limitations
- Arm nodes are available in Google Cloud locations that support Arm architecture. For details, see Available regions and zones.
See the following requirements and limitations for C4A:
To create a cluster with C4A nodes that uses Autopilot mode, cluster autoscaling, or node auto-provisioning, you must use the following versions or later:
- 1.28.15-gke.1344000
- 1.29.11-gke.1012000
- 1.30.7-gke.1136000
- 1.31.3-gke.1056000
To create a Standard cluster with C4A nodes, you must use one of the following versions or later:
- 1.28.13-gke.1024000
- 1.29.8-gke.1057000
- 1.30.4-gke.1213000
You can use Local SSDs with C4A nodes with the following versions or later:
- 1.29.15-gke.1325000
- 1.30.12-gke.1033000
- 1.31.8-gke.1045000
- 1.32.1-gke.1357000
GKE doesn't support the following features with C4A nodes:
See the following requirements and limitations for N4A:
GKE doesn't support the following features with N4A nodes:
- Local SSDs
- Confidential GKE Nodes
- GPUs
- Compact placement
- Simultaneous multi-threading (SMT)
- Persistent disks (use Hyperdisk instead, see Supported disk types for N4A)
- Nested virtualization
- 1 GB hugepages (only 2 MB hugepages supported)
- Autopilot
See the following requirements and limitations for T2A:
GKE doesn't support the following features with T2A nodes:
What's next
- Create clusters and node pools with Arm nodes
- Build multi-architecture images for Arm workloads
- Prepare an Arm workload for deployment
- Migrate x86 application on GKE to multi-arch with Arm