.png)
Я установил кластер 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",
Что может происходить или как я могу глубже изучить проблему?
В рабочем узле я в основном установил kubeadm
и присоединился к кластеру, но я не установил ничего kubelet
, kubectl
связанного с плагином CNI (я сделал это только на CP). Kubernetes должен заботиться об этом из CP, но это Network plugin returns error: cni plugin not initialized
меня озадачивает.
решение1
Можете ли вы описать модули и посмотреть, есть ли какие-либо события, как вы делали с узлами? Кроме того, копирование и вставка вашего терминала показывает, что модули все еще готовятся — как долго вы ждете и что происходит с ними по истечении времени (минут)?
Я подхожу к этому с точки зрения Calico (еще один CNI), потому что это мой опыт, и мне кажется, что вы уже сделали первые шаги кустановить Кубернетеси ваши узлы работают и работают. Вы женаты на Cilium? У Calico есть документы для "Трудный путь"что похоже на то, что вы делаете, и может принести больше успеха, особенно, как вы говорите"Я не могу поделиться никакой документацией. Репликация затруднена." (Я не знаю, это потому, что вы не следуете документации, или это секрет) При установке Calico вам необходимо настроить и применитьпользовательские определения ресурсовпрежде чем устанавливать CNI - вы делали что-то подобное и можете ли вы проверить, что это правильно? Вы абсолютно уверены, что используемый вами CIDR не пересекается ни с чем другим? У Calico и Cilium есть CLI - вы его установили? Можете ли вы использовать этот инструмент, чтобы получить статус, а затем получить какие-либо ошибки?
Вкратце мои предложения:
- Опишите модули или получите журналы модулей и найдите ошибки/события.
- Проверьте все CDR и убедитесь, что конфигурация правильная.
- Установите и используйте инструменты CNI CLI для проверки статуса
- Попробуйте другой CNI/следуйте инструкциям, чтобы разрешить воспроизведение/отладку