Learn how to build and deploy a multi-architecture application on Amazon EKS

Who is this for?

This is an advanced topic for software developers who want to understand how to build and deploy a multi-architecture application with x86/amd64 and arm64-based container images on Amazon Elastic Kubernetes Service (EKS).

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Build x86/amd64 and arm64 container images with docker buildx and docker manifest
  • Understand the nuances of building a multi-architecture container image
  • Deploy a multi-arch container application across multiple architectures in a single Amazon EKS cluster

Prerequisites

Before starting, you will need the following:

Summary

AI-assisted

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.

Close
?
You’ll build amd64 and arm64 container images with Docker Buildx, publish a multi-architecture manifest, and deploy it to a hybrid Amazon EKS cluster. You’ll configure Arm-based Graviton and x86 nodes, publish both variants under one image tag, and verify that Kubernetes selects the right image for each node. By the end, one deployment will run across both architectures in the cluster.

Frequently asked questions

AI-assisted

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.

Close
?
Which platforms should I target when I build the images?
Build two variants: amd64 for x86 and arm64 for Arm-based nodes powered by Graviton. These two images form the basis for your multi-architecture manifest.
When should I create the Docker manifest, and what should it include?
Create the manifest after you build the per-architecture images. It should reference both the amd64 and arm64 images under a single tag.
How do I know if my EKS cluster has both Arm and x86 nodes before I deploy?
Confirm that the cluster includes arm64 and amd64 node groups. Use kubectl to inspect node details and verify that both architectures are present.
What result should I expect when I deploy the multi-arch image to the cluster?
Kubernetes schedules pods onto either node type, and each node pulls the correct image variant from the multi-arch tag. You should see the same application running across both architectures.
What should I check if my workload only runs on one architecture?
Verify that the cluster includes both arm64 and amd64 nodes and that your manifest lists both image variants. Also check that your deployment uses the multi-architecture image tag, not an architecture-specific one.
Next