coredns状态一直为ContainerCreating,并且报错 failed to find plugin “flannel“ in path [/opt/cni/bin]]

解决办法
需要下载CNI插件:CNI plugins v0.8.6

github下载地址:https://github.com/containernetworking/plugins/releases/tag/v0.8.6

(在1.0.0版本后CNI Plugins中没有flannel)

下载后通过xftp 上传到Linux /home目录解压

tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz

复制 flannel 到 /opt/cni/bin/

 cp flannel /opt/cni/bin/
### 解决 Kubernetes 中 kube-flannel 容器启动失败问题 当遇到 `error syncing pod, skipping` 错误并伴随容器处于 `ContainerCreating` 状态时,通常意味着网络配置存在问题。此类错误可能由多种因素引起。 对于 Flannel CNI 插件而言,常见的原因包括: - **Flannel Pod 无法获取 IP 地址** 这可能是由于集群中的 CoreDNS 或者其他关键组件未能正常工作所致[^1]。建议检查这些服务的状态以确认其健康状况。 - **CNI 配置文件缺失或不正确** 如果 CNI 配置文件丢失或者存在语法错误,则可能导致节点上的 Pods 无法初始化网络接口。确保 `/etc/cni/net.d/` 目录下有正确的 flannel cni 文件,并且内容无误。 针对上述提到的手动创建 API Token 的方法并不是直接解决问题的方式;该操作主要用于解决因缺少适当权限而导致的服务资源访问问题而非网络层面的故障。 为了修复此问题,可尝试以下方案之一: #### 方法一:重新部署 Flannel 如果怀疑现有安装有问题,可以通过删除现有的 Flannel 资源对象再重新应用来重置环境。 ```bash kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` #### 方法二:验证并修正 CNI 配置 确保所有必要的 CNI 组件都已正确定义并且位于预期位置。特别是要核实 `/etc/cni/net.d/` 下是否存在有效的 JSON 格式的配置文件用于描述如何设置容器网络。 #### 方法三:调整 Kubelet 参数 有时也需要考虑是否需要更新 kubelet 启动参数以适应新的网络插件需求。这涉及到编辑主节点上与 worker 节点上的 kubelet.service 文件,加入合适的选项如 `--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin`. 以上措施应该能够帮助排除大部分情况下发生的 `kube-flannel container start failed` 及相关联的同步错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值