DEV Community

Aisalkyn Aidarova
Aisalkyn Aidarova

Posted on

Lab: Create Kubernetes Cluster in Azure (AKS)

Architecture we will create:

Internet
   │
Azure Load Balancer
   │
AKS Cluster
   │
Pods / Deployments
Enter fullscreen mode Exit fullscreen mode

Step 1 — Install Azure CLI on Your VM (or Mac)

Since you already have your Azure VM, SSH into it:

ssh -i vm-lab-1_key.pem azureuser@20.83.170.33
Enter fullscreen mode Exit fullscreen mode

Install Azure CLI:

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Enter fullscreen mode Exit fullscreen mode

Verify:

az version
Enter fullscreen mode Exit fullscreen mode

Step 2 — Login to Azure

Run:

az login
Enter fullscreen mode Exit fullscreen mode

A browser login link will appear.
Authenticate using your Azure account.

Verify subscription:

az account show
Enter fullscreen mode Exit fullscreen mode

Step 3 — Create Resource Group

All AKS resources will live inside this group.

az group create \
--name aks-lab-rg \
--location eastus
Enter fullscreen mode Exit fullscreen mode

Verify:

az group list
Enter fullscreen mode Exit fullscreen mode

Step 4 — Create AKS Cluster

Now create the Kubernetes cluster.

az aks create \
--resource-group aks-lab-rg \
--name aks-lab-cluster \
--node-count 2 \
--enable-addons monitoring \
--generate-ssh-keys
Enter fullscreen mode Exit fullscreen mode

Explanation:

--node-count 2 → number of worker nodes
--generate-ssh-keys → auto creates SSH keys
--enable-addons monitoring → enables Azure Monitor
Enter fullscreen mode Exit fullscreen mode

Creation takes 5–10 minutes.


Step 5 — Install kubectl

If kubectl is not installed:

sudo az aks install-cli
Enter fullscreen mode Exit fullscreen mode

Verify:

kubectl version --client
Enter fullscreen mode Exit fullscreen mode

Step 6 — Connect kubectl to AKS

Download cluster credentials:

az aks get-credentials \
--resource-group aks-lab-rg \
--name aks-lab-cluster
Enter fullscreen mode Exit fullscreen mode

Test:

kubectl get nodes
Enter fullscreen mode Exit fullscreen mode

Expected output:

NAME                                STATUS   ROLES
aks-nodepool1-xxxxxx-vmss000000     Ready    agent
aks-nodepool1-xxxxxx-vmss000001     Ready    agent
Enter fullscreen mode Exit fullscreen mode

Step 7 — Deploy an Application

Create deployment:

kubectl create deployment nginx \
--image=nginx
Enter fullscreen mode Exit fullscreen mode

Check pods:

kubectl get pods
Enter fullscreen mode Exit fullscreen mode

Step 8 — Expose Service

Expose using LoadBalancer:

kubectl expose deployment nginx \
--type=LoadBalancer \
--port=80
Enter fullscreen mode Exit fullscreen mode

Check service:

kubectl get svc
Enter fullscreen mode Exit fullscreen mode

Wait until EXTERNAL-IP appears.

Example:

nginx   LoadBalancer   20.80.x.x
Enter fullscreen mode Exit fullscreen mode

Step 9 — Access Application

Open browser:

http://EXTERNAL-IP
Enter fullscreen mode Exit fullscreen mode

You should see:

Welcome to nginx
Enter fullscreen mode Exit fullscreen mode

Step 10 — Useful AKS Commands

Check cluster info:

kubectl cluster-info
Enter fullscreen mode Exit fullscreen mode

List nodes:

kubectl get nodes
Enter fullscreen mode Exit fullscreen mode

List pods:

kubectl get pods -A
Enter fullscreen mode Exit fullscreen mode

Scale deployment:

kubectl scale deployment nginx --replicas=3
Enter fullscreen mode Exit fullscreen mode

Delete resources:

kubectl delete deployment nginx
Enter fullscreen mode Exit fullscreen mode

Azure AKS Architecture

Azure Resource Group
        │
        ▼
Azure Kubernetes Service
        │
        ▼
Node Pool (VM Scale Set)
        │
        ▼
Pods
        │
        ▼
Azure Load Balancer
Enter fullscreen mode Exit fullscreen mode

Top comments (0)