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並且您的節點已啟動並正在運行。你和西里姆結婚了嗎? Calico 有文檔“艱難的道路“這聽起來像你正在做的事情,並且可能會取得更大的成功,尤其是正如你所說的那樣”我無法共享任何文件。複製是困難的。」(不知道是因為你沒有遵循文檔,還是這是一個秘密)安裝Calico時,你必須配置並應用自訂資源定義在安裝 CNI 之前 - 您是否做過類似的事情並且您可以驗證它是否正確?您絕對確定您使用的 CIDR 不會與其他任何內容重疊嗎? Calico 和 Cilium 都有 CLI - 您安裝了嗎?您可以使用該工具取得狀態然後收到任何錯誤嗎?

TLDR 我的建議:

  • 描述 Pod 或取得 Pod 日誌並尋找錯誤/事件
  • 檢查所有 CDR 並確保配置正確
  • 安裝並使用CNI CLI工具檢查狀態
  • 嘗試不同的 CNI/按照說明進行複製/調試

相關內容