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

Kubernetes in Docker(Kind)节点NotReady问题求助

解决kind集群节点NotReady(CNI插件未初始化)问题

针对Windows10+WSL2(Ubuntu22.04)+Docker Desktop环境下,kind创建集群后节点提示runtime network not ready: NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized的问题,可按以下步骤排查解决:

1. 验证Docker与WSL集成状态

  • 打开Docker Desktop,进入Settings > Resources > WSL Integration,确认Ubuntu 22.04的集成开关已开启,点击Apply & Restart重启Docker。
  • 在WSL终端执行docker info,确认输出中包含WSL 2相关标识,确保Docker服务在WSL环境正常运行。

2. 删除现有集群并重新创建

CNI初始化失败多为临时网络配置异常,重新创建集群大概率能解决:

  • 删除问题集群:
    kind delete cluster --name wslkind
    
  • 用默认配置重新创建集群:
    kind create cluster --name wslkind
    
  • 创建完成后等待2-3分钟,执行kubectl get nodes查看节点状态。

3. 手动检查并修复CNI插件(若重新创建无效)

  • 进入集群的control-plane容器:
    docker exec -it wslkind-control-plane bash
    
  • 查看CNI插件目录是否存在有效文件:
    ls /etc/cni/net.d/
    
    正常应存在10-kindnet.conflist文件,若为空或缺失,手动生成默认CNI配置:
    cat > /etc/cni/net.d/10-kindnet.conflist <<EOF
    {
      "cniVersion": "0.3.1",
      "name": "kindnet",
      "plugins": [
        {
          "type": "kindnet",
          "ipam": {
            "type": "host-local",
            "subnet": "10.244.0.0/16",
            "routes": [{"dst": "0.0.0.0/0"}]
          }
        },
        {
          "type": "portmap",
          "capabilities": {"portMappings": true}
        }
      ]
    }
    EOF
    
  • 重启kubelet服务:
    systemctl restart kubelet
    
  • 退出容器,等待1-2分钟后再次执行kubectl get nodes确认状态。

4. 检查WSL网络配置

  • 在WSL终端执行ip addr,确认eth0接口已分配有效IP地址。
  • 检查DNS配置,确保/etc/resolv.conf中的nameserver为有效地址(如8.8.8.8),避免因DNS解析失败导致CNI插件下载异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:45:46