我有两个节点的k8s集群工作。我向集群添加了另一个节点,并且sudo kubeadm join ...
命令报告该节点已加入集群。新节点卡在“未就绪”状态:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
msi-ubuntu18 NotReady <none> 29m v1.19.0
tv Ready master 131d v1.18.6
ubuntu-18-extssd Ready <none> 131d v1.17.4
journalctl -u kubelet
显示此错误:
Started kubelet: The Kubernetes Node Agent.
22039 server.go:198] failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/l...
但是文件/var/lib/kubelet/config.yaml存在并且看起来还可以。
sudo systemctl status kubelet
显示了另一个错误:
kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plu
cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
在新节点上没有/ etc / cni /目录。 (现有节点中有/etc/cni/net.d/,其中包含calico文件。)如果我运行
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
不能解决问题。新节点上仍然没有/ etc / cni /目录。
在创建新节点时,我一定错过了一步。如何在新节点上获得/ etc / cni /目录?当新节点卡在“未就绪”状态时,kubeadm join ...
命令指示成功也令人感到困惑。
答案 0 :(得分:1)
对于遇到此问题的其他人,我终于可以通过解决
kubectl delete -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
之后
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
几个月前我安装的3.11版本和新节点之间肯定存在版本不兼容。