Build a multi-architecture NGINX cluster on Azure Kubernetes Service
Introduction
Explore Arm and x86 NGINX workloads on a Kubernetes cluster
Create the AKS cluster
Create the test utility
Deploy NGINX on Intel x86
Deploy NGINX on Arm
Deploy an NGINX multi-architecture service on AKS
Monitor performance with wrk and btop
Next Steps
Build a multi-architecture NGINX cluster on Azure Kubernetes Service
Review 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.
Confirm that the cluster has two node pools, one x86 and one Arm, and that
kubectl can reach the cluster. Check that nodes report the expected CPU architecture so scheduling can target each pool.Use a multi-architecture NGINX image from Docker Hub. The container runtime pulls the correct image variant based on the node’s CPU architecture.
When you request a service’s external endpoint, you receive JSON with
message, timestamp, server, and request_uri fields. You see nginx response as the message and the serving pod’s name in server.Use
kubectl to check each pod’s node assignment and labels. The Arm service selects pods with app: nginx-multiarch and arch: arm. Verify that Arm pods run on the Arm node pool and x86 pods run on the x86 pool.Verify that the Arm node pool exists and is ready. Ensure that the deployment and service selectors match, including
app: nginx-multiarch and arch: arm. Also confirm that the namespace and shared ConfigMap were created before applying the deployment.