Kubernetes工作节点处于“NotReady”状态

时间:2018-04-29 09:51:55

标签: kubernetes flannel

我在Virtualbox中设置了两个节点Kubernetes。师父起来很好。但是工作节点处于“NotReady”状态。

[root@master ~]# kubectl get nodes
NAME      STATUS     ROLES     AGE       VERSION
master    Ready      master    1d        v1.10.2
node      NotReady   <none>    1h        v1.10.2
工作节点上的“journalctl -u kubelet”命令报告与网络相关的错误:

kuberuntime_manager.go:757] checking backoff for container "install-cni" in pod "kube-flannel-ds-zjlvn_kube-system(873fa36d-4b83-11e8-9997-080027afb5ab)"
remote_runtime.go:278] ContainerStatus "459643e54de7f82df8ada0f60e8f3d51d42c5ce348747a66e20ad5720155e63f" from runtime service failed: rpc error: code = U
kuberuntime_container.go:636] failed to remove pod init container "install-cni": failed to get container status "459643e54de7f82df8ada0f60e8f3d51d42c5ce34
kuberuntime_manager.go:757] checking backoff for container "install-cni" in pod "kube-flannel-ds-zjlvn_kube-system(873fa36d-4b83-11e8-9997-080027afb5ab)"
kuberuntime_manager.go:767] Back-off 10s restarting failed container=install-cni pod=kube-flannel-ds-zjlvn_kube-system(873fa36d-4b83-11e8-9997-080027afb5a
pod_workers.go:186] Error syncing pod 873fa36d-4b83-11e8-9997-080027afb5ab ("kube-flannel-ds-zjlvn_kube-system(873fa36d-4b83-11e8-9997-080027afb5ab)"), sk
cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
kubelet.go:2125] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni con
cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
kubelet.go:2125] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni con
cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
kubelet.go:2125] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni con

我正在运行Kubernetes版本1.10和docker版本1.13.1。你能帮我找出这个问题的根本原因和解决方法吗?

1 个答案:

答案 0 :(得分:0)

嗯,当你想要组建一个kubernetes集群时,它需要你部署一个CNI插件,它可以在你的pod之间提供网络连接。您在此处显示的错误是由于CNI插件未安装或未正确配置。

在您的群集上部署CNI插件之前,kube-dns pod将处于暂挂状态。一旦kube-dns进入running状态,(在部署cni提供程序之后),您就可以运行应用程序工作负载。

如果您尚未部署CNI插件,可以选择几种插件。

  1. Calico:通过标准BGP提供Pod网络。 (按照文档获取更多信息) kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml

  2. Weave:创建一个覆盖网络。 export kubever=$(kubectl version | base64 | tr -d '\n') kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"

  3. Flannel:创建一个覆盖网络,将每个主机视为子网。 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml

  4. 需要了解iptables的容器流量,你可以这样做 sysctl net.bridge.bridge-nf-call-iptables=1 这需要法兰绒和编织才能发挥作用。

    请参阅适用于您的群集的每个CNI插件的文档。