【发布时间】:2020-12-17 14:05:29
【问题描述】:
我有一个两个节点的 k8s 集群正在工作。我向集群中添加了另一个节点,sudo kubeadm join ... 命令报告该节点已加入集群。新节点卡在 NotReady 状态:
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/ 里面有印花布文件。)如果我运行
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
再次在master上它并没有解决问题。新节点上仍然没有 /etc/cni/ 目录。
我在创建新节点时一定错过了一步。如何获取新节点上的 /etc/cni/ 目录?同样令人费解的是kubeadm join ...命令在新节点卡在NotReady时表示成功。
【问题讨论】:
-
您在初始化集群时是否添加了pod CIDR?您能否尝试安装最新的 calico 版本,即 3.16,并检查它是否有效?您能否将
kubectl get pods --all-namespaces的输出添加到您的问题中? -
是:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
标签: kubernetes kubeadm