You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS Azure CNI节点子网静态IP预留及Pod IP分配管控咨询

AKS Azure CNI IP分配与子网IP预留指南

1. 节点池子网IP用作LoadBalancer外部IP的合规性

完全合规。Azure允许将AKS节点池子网内的IP指定为LoadBalancer服务的外部IP,只要该IP未被子网内其他资源(节点、Pod、VM等)占用即可。但需确保这类IP不在Azure CNI的自动分配范围内,避免地址冲突。

2. Azure CNI跟踪Pod已分配IP的机制

Azure CNI通过以下逻辑管理IP分配与跟踪:

  • 每个节点上的azure-vnet-ipam组件负责从子网中为Pod分配IP,同时维护节点本地的IP使用记录。
  • 集群层面,Azure CNI会与Azure网络控制器同步子网的IP占用状态,确保不会出现重复分配。
  • 已分配的Pod IP会被标记在节点的IPAM数据库中,同时Azure子网的IP地址空间也会同步标记这些IP为已占用(可通过Azure门户查看子网IP使用详情)。

3. 管控IP分配并预留子网IP的方法

有两种可靠方式预留子网内的IP,避免被Pod自动分配:

方式一:子网级IP预留(推荐)

直接在AKS节点池所在子网中设置IP范围预留:

  • 通过Azure门户或Azure CLI找到目标子网,将需要预留的IP段排除在AKS可用IP池之外。例如子网地址空间为10.0.0.0/24,可将10.0.0.100-10.0.0.150标记为预留,不纳入Azure CNI自动分配范围。
  • Azure CLI配置示例:
    az network vnet subnet update \
      --name <你的子网名称> \
      --vnet-name <你的虚拟网络名称> \
      --resource-group <你的资源组名称> \
      --address-prefixes 10.0.0.0/24 \
      --reserved-ip-ranges 10.0.0.100-10.0.0.150
    

方式二:AKS集群级IP范围限制

创建或更新AKS集群/节点池时,指定Pod可使用的IP段(需是子网内的子集),未包含的IP段自动被预留:

  • 创建集群时通过--pod-cidr参数指定Pod分配范围,示例命令:
    az aks create \
      --name <你的AKS集群名称> \
      --resource-group <你的资源组名称> \
      --network-plugin azure \
      --vnet-subnet-id <你的子网ID> \
      --pod-cidr 10.0.0.0/26
    
    此时Pod仅能从10.0.0.0-10.0.0.63分配IP,子网内其余IP不会被Azure CNI分配给Pod。

4. 额外实践建议

  • 预留IP段时,需确保不包含AKS节点的IP地址,避免节点网络中断。
  • 若集群已运行Pod,修改子网预留范围或Pod CIDR后,需重启节点(或重新部署节点池)才能让新规则生效。
  • 用于LoadBalancer服务的预留IP,建议配置为静态IP,避免Azure自动回收,同时确认该IP不在Pod分配范围内。

内容的提问来源于stack exchange,提问作者asitha weerasinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:30:57