.png)
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 kubeadm
bin 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.kubelet
kubectl
Network 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