Stay organized with collections
Save and categorize content based on your preferences.
Autopilot
Standard
This page explains how you can run Arm workloads on Google Kubernetes Engine (GKE).
Overview
You can run Arm workloads in GKE Autopilot clusters
using the Performance or Scale-Outcompute
classes,
or in GKE Standard
clusters using the C4A machine series
(C4A) or Tau T2A machine
series (T2A). 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 guides for more information about choosing workloads to deploy on Arm and preparing those
workloads for deployment:
Choosing workloads to run on Arm: C4A nodes provide Arm-based compute
which achieves consistently high performance for your most
performance-sensitive Arm-based workloads. T2A nodes are appropriate for
more-flexible workloads, or workloads which rely on horizontal scale-out. To
learn more about what types of workloads work well with each of these
machine series, see the table in General-purpose machine family for
Compute Engine.
Deploying across architectures: With GKE, you can use
multi-arch images to deploy one image manifest across nodes with different
architectures, including 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.
[[["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-29 UTC."],[],[],null,["# Arm workloads on GKE\n\nAutopilot Standard\n\n*** ** * ** ***\n\nThis page explains how you can run Arm workloads on Google Kubernetes Engine (GKE).\n\nOverview\n--------\n\nYou can run Arm workloads in GKE Autopilot clusters\nusing the `Performance` or `Scale-Out` [compute\nclasses](/kubernetes-engine/docs/concepts/autopilot-compute-classes#when-to-use),\nor in GKE Standard\nclusters using the [C4A machine series\n(C4A)](/compute/docs/general-purpose-machines#c4a_series) or [Tau T2A machine\nseries (T2A)](/compute/docs/general-purpose-machines#t2a_machines). You can run\nsingle-architecture Arm images or multi-architecture (multi-arch) images\ncompatible with both x86 and Arm processors. To learn about the benefits of Arm,\nsee [Arm VMs on Compute](/compute/docs/instances/arm-on-compute).\n\nSee the following guides for more information about choosing workloads to deploy on Arm and preparing those\nworkloads for deployment:\n\n- **Choosing workloads to run on Arm** : C4A nodes provide Arm-based compute which achieves consistently high performance for your most performance-sensitive Arm-based workloads. T2A nodes are appropriate for more-flexible workloads, or workloads which rely on horizontal scale-out. To learn more about what types of workloads work well with each of these machine series, see the table in [General-purpose machine family for\n Compute Engine](/compute/docs/general-purpose-machines).\n- **Deploying across architectures** : With GKE, you can use multi-arch images to deploy one image manifest across nodes with different architectures, including Arm.\n - To ensure that your container image is Arm-compatible and can run on your targeted architectures, see [Build multi-architecture images for\n Arm workloads](/kubernetes-engine/docs/how-to/build-multi-arch-for-arm).\n - To follow a tutorial for using multi-arch images to deploy across architectures, see [Migrate x86 application on GKE to\n multi-arch with\n Arm](/kubernetes-engine/docs/tutorials/migrate-x86-to-multi-arch-arm).\n- **Preparing Arm workloads for deployment** : Once you have an Arm-compatible image, use [node\n affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) rules and [node selectors](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) to make sure your workload is scheduled to nodes with a compatible architecture type.\n - **Autopilot clusters** : see [Deploy Autopilot\n workloads on Arm\n architecture](/kubernetes-engine/docs/how-to/autopilot-arm-workloads).\n - **Standard clusters** : see [Prepare an Arm workload for\n deployment](/kubernetes-engine/docs/how-to/prepare-arm-workloads-for-deployment).\n\nRequirements and limitations\n----------------------------\n\n- To create a cluster with C4A nodes that uses [Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview)\n mode, [cluster\n autoscaling](/kubernetes-engine/docs/concepts/cluster-autoscaler),\n or [node\n auto-provisioning](/kubernetes-engine/docs/how-to/node-auto-provisioning),\n you must use the following versions or later:\n\n - 1.28.15-gke.1344000\n - 1.29.11-gke.1012000\n - 1.30.7-gke.1136000\n - 1.31.3-gke.1056000\n- To create a Standard cluster with C4A nodes, you must use one of the\n following versions or later:\n\n - 1.28.13-gke.1024000\n - 1.29.8-gke.1057000\n - 1.30.4-gke.1213000\n- Arm nodes are available in Google Cloud locations that support Arm\n architecture. For details, see [Available regions and\n zones](/compute/docs/regions-zones#available).\n\n- You can use [Local\n SSDs](/kubernetes-engine/docs/how-to/persistent-volumes/local-ssd) with C4A\n nodes with the following versions or later:\n\n - 1.29.15-gke.1325000\n - 1.30.12-gke.1033000\n - 1.31.8-gke.1045000\n - 1.32.1-gke.1357000\n- GKE doesn't support the following features with C4A nodes:\n\n - [Confidential GKE Nodes](/kubernetes-engine/docs/how-to/confidential-gke-nodes)\n - [Compact placement](/kubernetes-engine/docs/how-to/compact-placement)\n - [Simultaneous multi-threading (SMT)](/kubernetes-engine/docs/how-to/configure-smt)\n - [Persistent disks](/kubernetes-engine/docs/concepts/persistent-volumes) (use [Hyperdisk](/kubernetes-engine/docs/concepts/hyperdisk) instead, see [Supported disk types for\n C4A](/compute/docs/general-purpose-machines#supported_disk_types_for_c4a))\n - [Nested virtualization](/kubernetes-engine/docs/how-to/nested-virtualization)\n - [GPUs](/kubernetes-engine/docs/concepts/gpus)\n- GKE doesn't support the following features with T2A\n nodes:\n\n - [Confidential GKE Nodes](/kubernetes-engine/docs/how-to/confidential-gke-nodes)\n - [GPUs](/kubernetes-engine/docs/concepts/gpus)\n - [GKE Windows](/kubernetes-engine/docs/concepts/windows-server-gke)\n - [Local SSDs](/kubernetes-engine/docs/how-to/persistent-volumes/local-ssd)\n - [Policy Controller](/anthos-config-management/docs/concepts/policy-controller), [Config Sync](/anthos-config-management/docs/config-sync-overview), and [Config Controller](/anthos-config-management/docs/concepts/config-controller-overview)\n\nWhat's next\n-----------\n\n- [Create clusters and node pools with Arm nodes](/kubernetes-engine/docs/how-to/create-arm-clusters-nodes)\n- [Build multi-architecture images for Arm workloads](/kubernetes-engine/docs/how-to/build-multi-arch-for-arm)\n- [Prepare an Arm workload for deployment](/kubernetes-engine/docs/how-to/prepare-arm-workloads-for-deployment)\n- [Migrate x86 application on GKE to multi-arch with Arm](/kubernetes-engine/docs/tutorials/migrate-x86-to-multi-arch-arm)"]]