Kubernetes Node NotReady (CNI-Plugin nicht initialisiert)

Kubernetes Node NotReady (CNI-Plugin nicht initialisiert)

Ich habe einen K8s-Cluster installiert. Der Working Node ist dem Cluster erfolgreich beigetreten. Er ist jedoch noch nicht bereit:

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

Das ist wegen: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

Tatsächlich funktioniert der Pod nicht:

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>

Ich kann es löschen, sodass es neu erstellt wird, aber das Problem ist immer noch dasselbe.

DasWebsiteerwähnt ein potenzielles Problem mit CIDR, was aber nicht der Fall zu sein scheint:

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

Was kann passiert sein oder wie kann ich das Problem weiter untersuchen?


Im Arbeitsknoten habe ich im Wesentlichen installiert und kubeadmbin dem Cluster beigetreten, aber ich habe nichts installiert, was mit dem CNI-Plugin zu tun hat (das habe ich nur auf dem CP gemacht). Kubernetes soll sich vom CP aus darum kümmern, aber das verwirrt mich.kubeletkubectlNetwork plugin returns error: cni plugin not initialized

Antwort1

Können Sie die Pods beschreiben und nachsehen, ob es irgendwelche Ereignisse gibt, so wie Sie es mit den Knoten gemacht haben? Darüber hinaus zeigt das Kopieren und Einfügen Ihres Terminals, dass die Pods noch vorbereitet werden – wie lange warten Sie und was passiert nach Ablauf der Zeit (Minuten) mit ihnen?

Ich gehe es aus der Perspektive von Calico an (ein weiterer CNI), weil das meine Erfahrung ist und es scheint, als hätten Sie die ersten Schritte getan, umKubernetes installierenund Ihre Knoten sind einsatzbereit. Sind Sie mit Cilium verheiratet? Calico hat Dokumente für "der harte Weg" das klingt nach dem, was Sie tun und könnte mehr Erfolg bringen, vor allem, wie Sie sagen "Ich kann keine Dokumentation weitergeben. Eine Replikation ist schwierig." (Ich weiß nicht, ob das daran liegt, dass Sie die Dokumentation nicht befolgen, oder ob es ein Geheimnis ist) Bei der Installation von Calico müssen Sie konfigurieren und anwendenBenutzerdefinierte Ressourcendefinitionenbevor Sie das CNI installieren – haben Sie etwas Ähnliches getan und können Sie überprüfen, ob das richtig ist? Sind Sie absolut sicher, dass sich das von Ihnen verwendete CIDR nicht mit etwas anderem überschneidet? Sowohl Calico als auch Cilium haben eine CLI – haben Sie diese installiert? Können Sie dieses Tool verwenden, um den Status abzurufen und dann etwaige Fehler zu erhalten?

TLDR, meine Vorschläge:

  • Beschreiben Sie die Pods oder holen Sie sich Pod-Logs und suchen Sie nach Fehlern/Ereignissen
  • Überprüfen Sie alle CDRs und stellen Sie sicher, dass die Konfiguration korrekt ist
  • Installieren und verwenden Sie CNI CLI-Tools, um den Status zu überprüfen
  • Versuchen Sie es mit einem anderen CNI/folgen Sie den Anweisungen, um eine Reproduktion/Debugging zu ermöglichen

verwandte Informationen