Kubernetes Node NotReady(cni 插件未初始化)

Kubernetes Node NotReady(cni 插件未初始化)

我已经安装了一个 K8s 集群。工作节点已成功加入集群。但是,它尚未准备就绪:

a@front:~$ kubectl get nodes
NAME    STATUS     ROLES           AGE   VERSION
front   Ready      control-plane   49m   v1.27.1
wn1     NotReady   <none>          40m   v1.27.1

这是因为:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized

a@front:~$ kubectl describe node wn1
Name:               wn1
Roles:              <none>
...
Taints:             node.kubernetes.io/not-ready:NoExecute
                    node.cilium.io/agent-not-ready:NoSchedule
                    node.kubernetes.io/not-ready:NoSchedule
Unschedulable:      false
...
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Tue, 24 Oct 2023 21:26:10 +0000   Tue, 24 Oct 2023 21:05:34 +0000   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Tue, 24 Oct 2023 21:26:10 +0000   Tue, 24 Oct 2023 21:05:34 +0000   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Tue, 24 Oct 2023 21:26:10 +0000   Tue, 24 Oct 2023 21:05:34 +0000   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            False   Tue, 24 Oct 2023 21:26:10 +0000   Tue, 24 Oct 2023 21:05:34 +0000   KubeletNotReady              container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized

确实,Pod 无法正常工作:

a@front:~$ kubectl get pods -o wide --all-namespaces
NAMESPACE     NAME                               READY   STATUS              RESTARTS   AGE   IP              NODE    NOMINATED NODE   READINESS GATES
kube-system   cilium-drrww                       1/1     Running             0          20m   10.10.17.2      front   <none>           <none>
kube-system   cilium-gj6h6                       0/1     Init:0/6            0          10m   10.10.17.3      wn1     <none>           <none>
kube-system   cilium-operator-788c7d7585-htnr6   0/1     ContainerCreating   0          48m   10.10.17.3      wn1     <none>           <none>
kube-system   cilium-operator-788c7d7585-trmrk   1/1     Running             0          48m   10.10.17.2      front   <none>           <none>
...
kube-system   kube-proxy-7tsfd                   0/1     ContainerCreating   0          44m   10.10.17.3      wn1     <none>           <none>
kube-system   kube-scheduler-front               1/1     Running             4          52m   10.10.17.2      front   <none>           <none>

我可以删除它,因此它被重新创建,但问题仍然是一样的。

地点提到了 CIDR 的一个潜在问题,但事实似乎并非如此:

a@front:~$ kubectl cluster-info dump | grep cidr
                            "--allocate-node-cidrs=true",
                            "--cluster-cidr=10.10.17.0/16",

可能发生什么事情或者我如何进一步研究该问题?


在工作节点中,我基本上安装了kubeadmkubeletkubectl加入了集群,但我没有安装任何与 CNI 插件相关的东西(我只在 CP 上安装了)。Kubernetes 应该从 CP 处理这个问题,但这让Network plugin returns error: cni plugin not initialized我很困惑。

答案1

您能否描述一下这些 Pod,看看是否有任何事件,就像您对节点所做的那样?此外,您终端的复制和粘贴显示 Pod 仍在准备就绪 - 您等待了多长时间,一段时间(几分钟)后它们会发生什么?

我是从 Calico 的角度(另一个 CNI)来讨论这个问题的,因为这是我的经验,而且看起来你已经完成了初步的步骤安装 Kubernetes您的节点已启动并运行。您与 Cilium 结缘了吗?Calico 有文档“艰难之路“这听起来就像你正在做的事情,而且可能会带来更多的成功,尤其是正如你所说”我无法分享任何文档。复制很困难。“(我不知道这是因为你没有遵循文档,还是这是一个秘密)安装 Calico 时,你必须配置并应用自定义资源定义在安装 CNI 之前 - 您是否做过类似的事情,您能验证它是否正确吗?您是否绝对确定您使用的 CIDR 不会与其他任何内容重叠?Calico 和 Cilium 都有 CLI - 您安装了它吗?您可以使用该工具获取状态,然后获取任何错误吗?

我的建议如下:

  • 描述 pod 或获取 pod 日志并查找错误/事件
  • 检查所有 CDR 并确保配置正确
  • 安装并使用 CNI CLI 工具检查状态
  • 尝试不同的 CNI/按照说明进行复制/调试

相关内容