Azure Kubernetes Service (AKS)

Microsoft Azure · Advanced · 18 min

AKS is the choice when you need the full Kubernetes API, its ecosystem, or fine control over scheduling.

AKS gives you a Kubernetes cluster whose control plane (API server, etcd, scheduler) Azure runs for you. The Free tier has no SLA; the Standard tier adds a financially backed SLA and higher scale; Premium adds long-term support versions. AKS Automatic is a preconfigured mode that also manages nodes, scaling and security defaults.

What you still decide and operate:

  • Node pools: groups of VMs (scale sets) of one size. A system pool runs cluster add-ons; user pools run your workloads, can be Spot, GPU or ARM, and can scale to zero. Spread pools across zones.
  • Networking: Azure CNI Overlay (pods get IPs from a private overlay range, saving VNet space) is the common default, often with the Cilium dataplane for network policy and observability.
  • Ingress: the application routing add-on (managed NGINX) or Application Gateway for Containers.
  • Identity: Entra ID integration with Azure RBAC for Kubernetes authorization, a kubelet identity with AcrPull on your registry, and workload identity for pods calling Azure services.
  • Scaling: cluster autoscaler or node auto-provisioning for nodes, HPA/KEDA for pods.
  • Upgrades: Kubernetes minor versions are supported for about a year; use auto-upgrade channels, planned maintenance windows, and PodDisruptionBudgets so upgrades drain nodes safely.

Monitoring comes from Container Insights and managed Prometheus with Grafana.

Example

az aks create -g rg-aks -n aks-orders --tier standard \
  --node-count 3 --zones 1 2 3 --node-vm-size Standard_D4s_v5 \
  --network-plugin azure --network-plugin-mode overlay --network-dataplane cilium \
  --enable-oidc-issuer --enable-workload-identity \
  --enable-aad --enable-azure-rbac \
  --attach-acr acrorders --auto-upgrade-channel patch --generate-ssh-keys

az aks nodepool add -g rg-aks --cluster-name aks-orders -n spotpool \
  --priority Spot --eviction-policy Delete --spot-max-price -1 \
  --enable-cluster-autoscaler --min-count 0 --max-count 10

az aks get-credentials -g rg-aks -n aks-orders
kubectl get nodes -o wide

Remember

  • Azure runs the control plane; you own node pools, workloads and upgrades
  • Separate system and user node pools; spread across zones
  • CNI Overlay with Cilium is the common networking default
  • Use Entra auth, AcrPull via --attach-acr, and workload identity for pods

Watch out for

  • Running application pods on the system pool, starving CoreDNS and other critical add-ons.

Check yourself

  1. Why does CNI Overlay help large clusters in a small VNet?

Sign in to answer, see the explanations, and get this lesson back as a quick review later.

Official docs: learn.microsoft.com/en-us/azure/aks/what-is-aks