Share via

AKS (Azure CNI) – Why are Pod and Node CIDR ranges different?

Varma 1,560 Reputation points
2026-04-02T05:17:38.5566667+00:00

I created an AKS cluster using Azure CNI with the following commands:

az network vnet create -g RG -n aks-vnet --address-prefix 10.10.0.0/16 az network vnet subnet create -g RG --vnet-name aks-vnet -n aks-node-subnet --address-prefixes 10.10.1.0/24 az aks create \ --resource-group RG \ --name manual-aks \ --node-count 2 \ --network-plugin azure \ --vnet-subnet-id $(az network vnet subnet show -g RG --vnet-name aks-vnet -n aks-node-subnet --query id -o tsv) \ --enable-managed-identity

Observation:

  • Nodes are getting IPs from VNet subnet: 10.224.0.x
  • Pods are getting IPs from a different range: 10.0.0.x

Question: As I am using Azure CNI, I expected both nodes and pods to get IPs from the same VNet subnet. Why are pods assigned a different CIDR range in this case?

Azure Kubernetes Service
Azure Kubernetes Service

An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.

0 comments No comments

Answer accepted by question author
  1. Marcin Policht 86,455 Reputation points MVP Volunteer Moderator
    2026-04-02T11:18:56.1966667+00:00

    AFAIK, this happens because by default, when you create an AKS cluster using Azure CNI without specifying a pod CIDR, AKS automatically allocates a separate range for pod IPs from an internal pool, rather than using the node subnet directly. In Azure CNI, nodes receive IPs from the subnet you specify (in your case 10.10.1.0/24), but pods get IPs from a secondary CIDR range that AKS manages. This range is often drawn from 10.0.0.0/8 or another large internal block, which is why your pods are getting 10.0.0.x addresses.

    If you want pods to get IPs directly from the same subnet as nodes, try explicitly defining a pod IP range that overlaps the node subnet or extend the node subnet to include additional IPs for pods. This is done using the --pod-cidr parameter when creating the AKS cluster. For example:

    az aks create \
      --resource-group RG \
      --name manual-aks \
      --node-count 2 \
      --network-plugin azure \
      --vnet-subnet-id $(az network vnet subnet show -g RG --vnet-name aks-vnet -n aks-node-subnet --query id -o tsv) \
      --enable-managed-identity \
      --pod-cidr 10.10.1.0/24
    

    However, note that the subnet must have enough free IPs to accommodate both node IPs and pod IPs, because Azure CNI assigns a unique IP to every pod from the subnet.

    Since you didn’t specify a pod CIDR, AKS automatically created the 10.0.0.x range for pod allocation. That’s why you see nodes and pods on different IP ranges even with Azure CNI.


    If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.

    hth

    Marcin


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.