# Deploy an application to Azure Kubernetes Service on Arm-based virtual machines

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part3/)
- [Motivation](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part3/how-to-1/)
- [Create the Kubernetes cluster with Azure Container Registry](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part3/how-to-2/)
- [Connecting to the cluster](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part3/how-to-3/)
- [Deploying an application](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part3/how-to-4/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part3/_next-steps/)

## About this Learning Path

|  |  |
| --- | --- |
| Skill level: | Introductory |
| Reading time: | 45 min |
| Last updated: | 11 Sep 2026 |

|  |  |
| --- | --- |
| Author: | Dawid Borycki<br>[GitHub](https://github.com/dawidborycki) |
| Arm IP: | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags: | [Containers and Virtualization](https://learn.arm.com/tag/containers-and-virtualization) [Microsoft Azure Cobalt](https://learn.arm.com/tag/microsoft-azure-cobalt) [Linux](https://learn.arm.com/tag/linux) [aspnetcore](https://learn.arm.com/tag/aspnetcore) [Docker](https://learn.arm.com/tag/docker) [Kubernetes](https://learn.arm.com/tag/kubernetes) |

### Who is this for?
This Learning Path is dedicated to developers interested in learning how to deploy applications to the Azure Kubernetes Cluster powered by arm64-based virtual machines.

### What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Create a Kubernetes cluster using the Azure Kubernetes Service (AKS).
- Deploy a containerized application to AKS.

### Prerequisites
Before starting, you'll need the following prerequisites:
- An [Azure subscription](https://azure.microsoft.com/en-us/free/)
- Completion of the [Deploy .NET applications to Arm virtual machines and Azure Container Registry](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part1) and [Deploy a containerized application using Azure Container Instances](https://learn.arm.com/learning-paths/servers-and-cloud-computing/from-iot-to-the-cloud-part2) Learning Paths

### Summary
You’ll create an AKS cluster with Arm64-based nodes, connect it to Azure Container Registry, and deploy an application with Kubernetes manifests. Then, you’ll retrieve credentials, use `kubectl` to manage the cluster, and expose the workload with a service. You can create the cluster manually or use Terraform.

### Frequently asked questions

**How do I select an arm64 node size for the AKS cluster?**

In the AKS creation wizard, open **Node pools**, select **Standard DS2_v2 (change)**, and choose **Manual** scaling. Set the node count to **1**, select **Choose a size**, choose **D2pds_v5**, and select **Select**.

**How do I connect kubectl to the newly created cluster?**

Open Azure Cloud Shell and run `az aks get-credentials -g rg-arm64 -n aks-people`.

**What Kubernetes resources does the application manifest create?**

The manifest defines a deployment and a service. The deployment creates the application pods, and the service exposes those pods for access within the cluster.

**Where should my container images be hosted for this setup?**

The cluster is created with integration to Azure Container Registry. Use that registry to host the images that are referenced by your deployment.

**What should I check if kubectl can't reach the cluster after connecting?**

Confirm that you ran `az aks get-credentials` in Cloud Shell with the correct resource group (`rg-arm64`) and cluster name (`aks-people`), then run `kubectl get nodes`. If the request fails, check the active kubeconfig context and your access to the cluster before retrying.
