Skip to content

Commit d0e63bf

Browse files
authored
Merge pull request #120149 from JoeyC-Dev/patch-2
Refine statement to make difference between different CNIs in azure-cni-overview.md
2 parents 6fbb258 + 78aae1c commit d0e63bf

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

articles/aks/azure-cni-overview.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ ms.date: 9/13/2023
1515

1616
By default, AKS clusters use [kubenet][kubenet] and create a virtual network and subnet. With *kubenet*, nodes get an IP address from a virtual network subnet. Network address translation (NAT) is then configured on the nodes, and pods receive an IP address "hidden" behind the node IP. This approach reduces the number of IP addresses that you need to reserve in your network space for pods to use.
1717

18-
With [Azure Container Networking Interface (CNI)][cni-networking], every pod gets an IP address from the subnet and can be accessed directly. Systems in the same virtual network as the AKS cluster see the pod IP as the source address for any traffic from the pod. Systems outside the AKS cluster virtual network see the node IP as the source address for any traffic from the pod. These IP addresses must be unique across your network space and must be planned in advance. Each node has a configuration parameter for the maximum number of pods that it supports. The equivalent number of IP addresses per node are then reserved up front for that node. This approach requires more planning, and often leads to IP address exhaustion or the need to rebuild clusters in a larger subnet as your application demands grow.
18+
With [Azure Container Networking Interface (CNI)][cni-networking], every pod gets an IP address from the subnet and can be accessed directly. Systems in the same virtual network as the AKS cluster see the pod IP as the source address for any traffic from the pod. Systems outside the AKS cluster virtual network see the node IP as the source address for any traffic from the pod. These IP addresses must be unique across your network space and must be planned in advance. Each node has a configuration parameter for the maximum number of pods that it supports. The equivalent number of IP addresses per node are then reserved up front for that node. This approach requires more planning, and often leads to IP address exhaustion or the need to rebuild clusters in a larger subnet as your application demands grow.
19+
20+
> [!NOTE]
21+
>
22+
> This article is only introducing traditional Azure CNI. For [Azure CNI Overlay][azure-cni-overlay] and [Azure CNI for dynamic IP allocation][configure-azure-cni-dynamic-ip-allocation], refer to their documentation instead.
1923
2024
## Prerequisites
2125

@@ -120,11 +124,13 @@ Although it's technically possible to specify a service address range within the
120124

121125
* **Can I deploy VMs in my cluster subnet?**
122126

123-
Yes.
127+
Yes. But for [Azure CNI for dynamic IP allocation][configure-azure-cni-dynamic-ip-allocation], the VMs cannot be deployed in pod's subnet.
124128

125129
* **What source IP do external systems see for traffic that originates in an Azure CNI-enabled pod?**
126130

127131
Systems in the same virtual network as the AKS cluster see the pod IP as the source address for any traffic from the pod. Systems outside the AKS cluster virtual network see the node IP as the source address for any traffic from the pod.
132+
133+
But for [Azure CNI for dynamic IP allocation][configure-azure-cni-dynamic-ip-allocation], no matter the connection is inside the same virtual network or cross virtual networks, the pod IP is always the source address for any traffic from the pod. This is because the [Azure CNI for dynamic IP allocation][configure-azure-cni-dynamic-ip-allocation] implements [Microsoft Azure Container Networking][github-azure-container-networking] infrastructure, which gives end-to-end experience. Hence, it eliminates the use of [`ip-masq-agent`][ip-masq-agent], which is still used by traditional Azure CNI.
128134

129135
* **Can I configure per-pod network policies?**
130136

@@ -166,6 +172,8 @@ Learn more about networking in AKS in the following articles:
166172
[cni-networking]: https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md
167173
[kubenet]: concepts-network.md#kubenet-basic-networking
168174
[github]: https://raw.githubusercontent.com/microsoft/Docker-Provider/ci_prod/kubernetes/container-azm-ms-agentconfig.yaml
175+
[github-azure-container-networking]: https://github.com/Azure/azure-container-networking
176+
[ip-masq-agent]: https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/
169177

170178
<!-- LINKS - Internal -->
171179
[az-aks-create]: /cli/azure/aks#az_aks_create
@@ -183,3 +191,5 @@ Learn more about networking in AKS in the following articles:
183191
[network-comparisons]: concepts-network.md#compare-network-models
184192
[system-node-pools]: use-system-pools.md
185193
[prerequisites]: configure-azure-cni.md#prerequisites
194+
[azure-cni-overlay]: azure-cni-overlay.md
195+
[configure-azure-cni-dynamic-ip-allocation]: configure-azure-cni-dynamic-ip-allocation.md

0 commit comments

Comments
 (0)