Who is this for?

This Learning Path is for developers who want to compare the performance of amd64 and arm64 deployments by running inferences on a hybrid Google Kubernetes Engine (GKE) cluster using an Ollama multi-architecture container image.

What will you learn?

After completing this Learning Path, you'll be able to perform the following tasks:

  • Create a hybrid GKE cluster with amd64 and arm64 nodes.
  • Deploy Ollama services for amd64 and arm64 architectures using a single multi-architecture container image.
  • Validate deployments by pinging, pulling models, and running inferences to compare architecture performance.

Prerequisites

Before starting, you'll need the following prerequisites:

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 a hybrid GKE cluster that runs Ollama on amd64 and Arm nodes. First, you’ll deploy Ollama to the initial amd64 pool, add an Arm node pool, and create a matching arm64 deployment. Then, you’ll use a multi-architecture service and a script to route requests. You’ll identify the pod and node that handled each call, load a model, and compare inference behavior across both architectures.

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 namespace should I use for all Kubernetes objects?
Use the ollama namespace created by applying namespace.yaml. All subsequent deployments and services are scoped to this namespace.
How do I verify that the initial amd64 deployment is ready before adding Arm nodes?
Confirm that the Ollama deployment and service for amd64 exist in the ollama namespace and report ready. Don’t proceed until the pods are running and the service is available.
What values should I set when creating the Arm node pool?
Name the pool arm64-pool, set Size to 1, and enable Specify node locations with us-central1-a selected. On the Nodes tab, select the C4A series and c4a-standard-4 machine type, then select Create.
How do I send a request without selecting an architecture and see which architecture handled it?
Run ./model_util.sh multiarch hello to target the multi-architecture service. The response includes Ollama is running. Under Pod log output, you see a pod and container identifier with a timestamp. Use the amd64 or arm64 in the pod name to identify its architecture.
What should I check if requests always go to the same architecture?
Check that both the amd64 and arm64 deployments have running, ready pods in the ollama namespace. Confirm that both pods have the app: ollama-multiarch label and that ollama-multiarch-svc selects that label. Repeat ./model_util.sh multiarch hello to observe the pod identifiers in the logs.
Next