AWS EC2上Minikube Kubernetes节点未就绪、Pod Pending问题求助
解决Minikube none驱动下CNI未初始化导致节点NotReady问题
问题背景
在AWS EC2(2核CPU、4GB内存、10GB硬盘)的Ubuntu 18.04.6 LTS系统上,使用minikube start --vm-driver=none部署Kubernetes后,出现节点状态NotReady、CoreDNS等Pod处于Pending状态,kubelet日志提示:
E1019 08:52:52.018304 17361 kubelet.go:2373] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized"
手动安装Calico后问题仍未解决。
解决步骤
1. 清理现有环境残留
先删除当前Minikube集群并清理CNI配置文件,避免旧配置干扰:
minikube delete rm -rf /etc/cni/net.d
2. 重新启动Minikube并指定CNI插件
none驱动不会自动配置CNI,启动时直接指定兼容的CNI插件,Minikube会自动完成安装和配置:
- 使用Calico:
minikube start --vm-driver=none --cni=calico
- 或使用Flannel:
minikube start --vm-driver=none --cni=flannel
3. 验证部署状态
等待几分钟后,检查节点和Pod状态:
- 查看节点状态:
kubectl get nodes
正常情况下节点状态会变为Ready。
- 查看所有Pod状态:
kubectl get pods -A
CoreDNS、Calico/Flannel相关Pod应处于Running状态。
4. 异常排查(若上述步骤未解决)
- 确认CNI配置文件已生成:
ls /etc/cni/net.d
应存在对应CNI插件的配置文件(如10-calico.conflist)。
- 重启kubelet服务:
systemctl restart kubelet
- 实时查看kubelet日志,确认无CNI相关错误:
journalctl -u kubelet -f
注意事项
- AWS EC2安全组需开放CNI插件所需的网络端口:Calico需允许IPIP(协议4)或VXLAN(UDP 4789)流量;Flannel需允许UDP 8472流量。
- 使用Minikube自带的CNI安装方式,避免手动安装的插件与当前Kubernetes版本(v1.25.2)不兼容。
内容的提问来源于stack exchange,提问作者user20280609
相关产品推荐
相关产品推荐

