Author : MD TAREQ HASSAN | Updated : 2021/08/30
High Availability for Control Plane
- Microsoft provides Kubernetes API Server (control plane) for free, but free tier is not highly available
- To get guaranteed 99.95% uptime for “Kubernetes API Server”, uptime SLA (Paid tier) should be used
About Uptime SLA
Uptime SLA (paid tier) is the financially-backed service level agreement (SLA) that guarantees an uptime of 99.95% for the Kubernetes API server (control plane) for clusters that use Azure Availability Zone. So, to get high availability for control plane:
- Use availability zones (i.e. 3 availability zones) for node pool (system node pool & user node pool)
- Use Uptime SLA for new cluster (or enable Uptime SLA for existing clsuter)
Uptime SLA should be used for production workloads to ensure high availability of control plane components
High Availability for Node Pool
- AKS cluster is backed Virtual Machine Scale Set (VMSS) and therefore SLA of VMSS is applicable for clsuter with Availability Zones
- To get higly available clsuter, use 2 or more Availability Zones
- Availability Zones can be enable only:
- When creating clsuter
- Adding node pool
- If availability zone is not selected during clsuter creation, the default node pool (whcih is created during clsuter creation named “agentpool”) will not use availability zones
- Uptime SLA for control plane can be used only if cluster is created with Availability Zones.
AKS Cluster with Uptime SLA
Create new AKS cluster with uptime SLA
az aks create --resource-group fooResourceGroup --name fooAKSCluster --uptime-sla --node-count 1
Enable uptime SLA for existing cluster
az aks update --resource-group fooResourceGroup --name fooAKSCluster --uptime-sla
AKS Cluster with Availability Zones
Create AKS cluster with 3 Availability Zones in Azure Portal:
Using Azure CLI
az aks create \
--resource-group fooResourceGroup \
--name fooAKSCluster \
--generate-ssh-keys \
--vm-set-type FooVirtualMachineScaleSets \
--load-balancer-sku standard \
--node-count 3 \
--zones 1 2 3
Adding Node Pool with Availability Zones
Using Azure Portal