首页/云/Kubernetes 速查/Pod CIDR 与节点网段分配
网络与服务55 条

Pod CIDR 与节点网段分配

每个节点从集群 Pod 网段分到一块子网(podCIDR),Pod IP 从中分配;规划时要避开节点网段、Service 网段与既有专线网段。

Kubernetes 速查云更新于 2026-10-13

Pod CIDR 是什么

集群会给每个节点从 Pod 网段中分一块子网(node.spec.podCIDR),Pod 的 IP 就从这块子网里取。CNI 插件按分配结果在节点上建路由或隧道,让不同节点的 Pod 能直接互通,因此这块子网的位宽同时决定了单节点最多能跑多少 Pod。规划时要守住三条线:节点网段、Service 网段(--service-cluster-ip-range)与 Pod 网段(--cluster-cidr)互不重叠,也不能与办公网、专线对端、云上其他 VPC 冲突。

基本信息

适用平台Kubernetes 集群(kube-controller-manager 分配,CNI 负责落实)
关键字段node.spec.podCIDR;双栈集群另有 node.spec.podCIDRs
集群参数--cluster-cidr、--service-cluster-ip-range,在控制面组件上配置
查看方式kubectl get nodes 自定义列,或读取节点对象的 spec
规划红线三类网段互不重叠,且不使用保留地址段

典型使用场景

  • 新建集群前做网段规划:与现有 IDC、VPC、专线网段一起拿到同一张表上核对
  • 集群扩容受阻时核对剩余可分配子网,判断是网段位宽不够还是分配项耗尽
  • 接入新业务网段或专线前,检查是否与 Pod 网段重叠
  • 双栈改造时确认 podCIDRs 同时包含 IPv4 与 IPv6 两段
  • 排查跨节点 Pod 不通时,先确认双方 CIDR 与 CNI 路由是否一致

查看分配情况

查看分配情况
kubectl get node node-1 -o jsonpath='{.spec.podCIDR}'
kubectl get nodes -o custom-columns='NODE:.metadata.name,PODCIDR:.spec.podCIDR,INTERNAL:.status.addresses[0].address'
kubectl get svc kubernetes -n default -o jsonpath='{.spec.clusterIP}'   # 对照 Service 网段起点
kubectl -n kube-system get pods -o wide | grep -i -E 'calico|cilium|flannel'   # 定位 CNI 组件

三类网段对照

网段用途规划注意
节点网段宿主机之间通信不能与 Pod、Service 网段重叠
Pod CIDRPod IP 分配池位宽决定单节点可承载的 Pod 数
Service CIDRService 虚拟 IP与 Pod 网段必须错开,创建后难改
保留网段如 169.254.0.0/16、100.64.0.0/10不要选进任何一类,避免链路本地与运营商地址冲突
按节点均分子网时,节点数上限等于 Pod 网段可切出的子网数量:例如用 /24 切 /24 只能有一个节点,用 /16 切 /24 最多 256 个节点,容量评估要留出冗余。
Pod 网段在集群创建后基本无法调整:改动意味着重建 CNI 与重分配全部 Pod IP,属于停机级变更,规划阶段多花十分钟比事后迁移划算。

易错点

  • 与办公网或专线网段重叠:新节点加入后 Pod 路由与业务路由互相抢占,表现为部分节点 Pod 完全不通
  • 位宽给得太小:单节点可分配 Pod 数很快耗尽,扩容时报 IP 不足而不是资源不足,排查方向容易跑偏
  • 在多集群互通场景各自拍脑袋选段:对等连接建立后才发现网段重复,只能改一端的整体规划
  • 只看 podCIDR 不看 Service CIDR:两者重叠时 Service 虚拟 IP 与 Pod IP 冲突,故障现象零散且难复现

数据来源与参考

  • Kubernetes 官方文档 · Cluster Networking(Pod CIDR 规划)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌