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

K8s使用Calico CNI时主节点Pod错取docker网段IP如何修复

问题根因

主节点的kubelet未正确调用Calico CNI插件分配Pod IP,容器运行时(Docker)直接使用自身默认的docker0网桥网段(172.17.0.0/16)分配地址,属于CNI调用链路异常。

解决步骤
  • 检查主节点CNI相关文件是否正常
    登录异常主节点,依次检查两个路径的内容:
    1. /etc/cni/net.d/目录下是否存在Calico配置文件10-calico.conflist
    2. /opt/cni/bin/目录下是否存在calico、calico-ipam等Calico CNI二进制文件
      如果上述文件缺失,说明主节点上的calico-node Pod没有正常写入CNI资源,需要给calico-node的DaemonSet添加主节点污点容忍:容忍node-role.kubernetes.io/control-plane:NoSchedule和node-role.kubernetes.io/master:NoSchedule两个污点,配置完成后重启主节点上的calico-node Pod,等待文件生成。
  • 确认kubelet启动参数配置
    检查主节点kubelet启动参数是否包含以下配置:
    --network-plugin=cni
    --cni-conf-dir=/etc/cni/net.d
    --cni-bin-dir=/opt/cni/bin
    
    缺少则添加对应参数后重启kubelet服务。
  • 清理旧CNI配置残留
    如果/etc/cni/net.d/目录下存在其他名称排序早于10-calico.conflist的CNI配置文件(如00-docker.conf、旧的flannel配置等),会导致kubelet优先调用其他CNI插件,删除非Calico的冗余配置文件后,重启kubelet和calico-node Pod。
  • 验证配置生效
    删除主节点上原有IP异常的Pod,等待重建后查看IP分配情况,确认IP是否已经从主节点对应的Calico地址池(你环境中为10.128.0.0/24)分配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:06:02