Quotas, virtual machine size restrictions, and region availability in Azure Kubernetes Service (AKS)

All Azure services set default limits and quotas for resources and features, including usage restrictions for certain virtual machine (VM) SKUs.

This article details the default resource limits for Azure Kubernetes Service (AKS) resources and the availability of AKS in Azure regions.

Service quotas and limits

Resource Limit
Maximum clusters per subscription 5000
Note: spread clusters across different regions to account for Azure API throttling limits
Maximum nodes per cluster with Virtual Machine Scale Sets and Standard Load Balancer SKU 5000 across all node-pools
Note: If you are unable to scale up to 5000 nodes per cluster, see Best Practices for Large Clusters.
Maximum nodes per node pool (Virtual Machine Scale Sets node pools) 1000
Maximum node pools per cluster 100
Maximum pods per node: with Kubenet networking plug-in1 Maximum: 250
Azure CLI default: 110
Azure Resource Manager template default: 110
Azure portal deployment default: 30
Maximum pods per node: with Azure Container Networking Interface (Azure CNI)1 Maximum: 250
Maximum recommended for Windows Server containers: 110
Default: 30
Open Service Mesh (OSM) AKS addon Kubernetes Cluster Version: AKS Supported Versions
OSM controllers per cluster: 1
Pods per OSM controller: 1600
Kubernetes service accounts managed by OSM: 160
Maximum load-balanced kubernetes services per cluster with Standard Load Balancer SKU 300
Maximum nodes per cluster with Virtual Machine Availability Sets and Basic Load Balancer SKU 100

1 Windows Server containers must use Azure CNI networking plug-in. Kubenet is not supported for Windows Server containers.

Kubernetes Control Plane tier Limit
Standard tier Automatically scales Kubernetes API server based on load. Larger control plane component limits and API server/etc instances.
Free tier Limited resources with inflight requests limit of 50 mutating and 100 read-only calls. Recommended node limit of 10 nodes per cluster. Best for experimenting, learning, and simple testing. Not advised for production/critical workloads.

Provisioned infrastructure

All other network, compute, and storage limitations apply to the provisioned infrastructure. For the relevant limits, see Azure subscription and service limits.

Important

When you upgrade an AKS cluster, extra resources are temporarily consumed. These resources include available IP addresses in a virtual network subnet or virtual machine vCPU quota.

For Windows Server containers, you can perform an upgrade operation to apply the latest node updates. If you don't have the available IP address space or vCPU quota to handle these temporary resources, the cluster upgrade process will fail. For more information on the Windows Server node upgrade process, see Upgrade a node pool in AKS.

Supported VM sizes

The list of supported VM sizes in AKS is evolving with the release of new VM SKUs in Azure. Please follow the AKS release notes to stay informed of new supported SKUs.

Restricted VM sizes

VM sizes with fewer than two CPUs may not be used with AKS. Each node in an AKS cluster contains a fixed amount of compute resources such as vCPU and memory. If an AKS node contains insufficient compute resources, pods might fail to run correctly. To ensure that the required kube-system pods and your applications can reliably be scheduled, don't use B series VMs and the following VM SKUs in AKS on system node pools:

  • Standard_A0
  • Standard_A1
  • Standard_A1_v2
  • Standard_F1
  • Standard_F1s

For more information on VM types and their compute resources, see Sizes for virtual machines in Azure.

Supported container image sizes

AKS doesn't set a limit on the container image size. However, it's important to understand that the larger the container image, the higher the memory demand. This could potentially exceed resource limits or the overall available memory of worker nodes. By default, memory for VM size Standard_DS2_v2 for an AKS cluster is set to 7 GiB.

When a container image is very large (1 TiB or more), kubelet might not be able to pull it from your container registry to a node due to lack of disk space.

Region availability

For the latest list of where you can deploy and run clusters, see AKS region availability.

Cluster configuration presets in the Azure portal

When you create a cluster using the Azure portal, you can choose a preset configuration to quickly customize based on your scenario. You can modify any of the preset values at any time.

Preset Description
Production Standard Best for most applications serving production traffic with AKS recommended best practices.
Dev/Test Best for developing new workloads or testing existing workloads.
Production Economy Best for serving production traffic in a cost conscious way if your workloads can tolerate interruptions.
Production Enterprise Best for serving production traffic with rigorous permissions and hardened security.
Production Standard Dev/Test Production Economy Production Enterprise
System node pool node size Standard_D8ds_v5 Standard_DS2_v2 Standard_D8ds_v5 Standard_D16ds_v5
System node pool autoscaling range 2-5 nodes 2-100 nodes 2-5 nodes 2-5 nodes
User node pool node size Standard_D8ds_v5 - Standard_D8as_v4 Standard_D8ds_v5
User node pool autoscaling range 2-100 nodes - - 2-100 nodes
Private cluster - - -
Availability zones - -
Azure Policy - -
Azure Monitor - -
Secrets store CSI driver - -
Network configuration Azure CNI Kubenet Azure CNI Azure CNI
Network configuration Calico Calico Calico Calico
Authentication and Authorization Local accounts with Kubernetes RBAC Local accounts with Kubernetes RBAC Azure AD Authentication with Azure RBAC Azure AD authentication with Azure RBAC

Next steps

You can increase certain default limits and quotas. If your resource supports an increase, request the increase through an Azure support request (for Issue type, select Quota).