Learn how to migrate an x86 application to multi-architecture with Arm-based on Google Axion Processor on GKE
Introduction
Build and deploy a multi-arch application on GKE
Next Steps
Learn how to migrate an x86 application to multi-architecture with Arm-based on Google Axion Processor on GKE
Who is this for?
This is an advanced topic for software developers who are looking to migrate their existing x86 containerized applications to Arm
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Add Arm-based nodes powered by Google Axion to an existing x86-based Google Kubernetes Engine (GKE) cluster.
- Rebuild an x86-based application to make it multi-arch and run on Arm.
- Add taints and tolerations to GKE clusters to schedule application pods on architecture specific nodes.
- Run a multi-arch application across multiple architectures on a single GKE cluster.
Prerequisites
Before starting, you will need the following:
- A Google Cloud account
- A computer with Google Cloud CLI and kubectl installed
- An existing GKE cluster with x86-based nodes
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll extend an existing x86 GKE cluster with Arm capacity using Google Axion-based C4A nodes. First, you’ll rebuild the application image for multiple architectures and configure taints and tolerations for scheduling. Then, you’ll deploy workloads either to selected nodes or both architectures and verify that the multi-architecture image runs across the hybrid cluster.
Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Use the C4A family of virtual machines. C4A is based on Google Axion with Armv9 Neoverse V2 CPUs.
Use
kubectl to inspect the node list and verify that C4A nodes are present alongside the existing x86 nodes. Check node details to confirm the architecture of each node.Apply taints to architecture-specific nodes when you need to control where pods schedule. Add matching tolerations to pod specs so that workloads can target Arm or x86 nodes as intended.
Apply the x86 overlay with the
x86-hello:v0.0.1 image or the Arm overlay with arm-hello:v0.0.1. Check the pod output to verify the reported CPU platform.Verify that Arm-based C4A nodes are part of the cluster. Ensure taints and tolerations match, and confirm the image includes an Arm build. Resolve any mismatch before redeploying.