容器运行时网络未就绪:cni config未初始化

问题描述 投票:5回答:4

我正在Virtualbox内运行的centos VM上安装kubernetes(kubeadm),所以我用yum安装了kubeadm, kubeletdocker

现在,当尝试使用kubeadm init --pod-network-cidr=192.168.56.0/24 --apiserver-advertise-address=192.168.56.33/32设置群集时,我遇到以下错误:

Unable to update cni config: No networks found in /etc/cni/net.d

Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

所以我检查,cni没有/etc文件夹,即使安装了kubernetes-cni-0.6.0-0.x86_64。我试着在KUBELET_NETWORK_ARGS评论/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,但它没有用。

PS:

  • 我正在安装代理后面。
  • 我有多个网络适配器: NAT:10.0.2.15/24用于Internet 仅限主机:192.168.56.33/32 和docker接口:172.17.0.1/16

Docker版本:17.12.1-ce kubectl版本:主要:“1”,轻微:“9”,GitVersion:“v1.9.3” Centos 7

kubernetes kubeadm cni
4个回答
2
投票

使用“kubeadm init”设置群集时需要记住几点,并且在Kubernetes网站上明确记录了kubeadm cluster create

  • 如果您已经创建了以前的群集,则“kubeadm reset”
  • 从主目录或根目录中删除“.kube”文件夹
  • (同时使用systemctl停止kubelet将允许顺利设置)
  • 在计算机上永久禁用交换,尤其是在重新启动Linux系统时
  • 不要忘记,按照网站上添加的说明安装a pod network add-on(不是Kubernetes网站)
  • 按照kubeadm在命令窗口中给出的后初始化步骤进行操作。

如果正确遵循所有这些步骤,那么您的群集将正常运行。

并且不要忘记执行以下命令以在创建的集群上启用调度:

kubectl taint nodes --all node-role.kubernetes.io/master-

1
投票

这是qazxsw poi qazxsw poi中提到的代理错误

他们建议使用Github,但我完全改变我的网络(没有代理),我设法设置我的集群。

之后我们可以使用https://github.com/kubernetes/kubernetes/issues/34695设置pod网络,参见kubeadm init --use-kubernetes-version v1.4.1


1
投票

检查kubectl apply -f ...

使用此PR(直到批准):

https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network

这是一个众所周知的问题:this answer


0
投票

我看不到helm服务器版本:

kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

coreos/flannel#1044命令显示消息:

$ helm version --tiller-namespace digital-ocean-namespace
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Error: could not find a ready tiller pod

节点尚未就绪:

kubectl describe node kubernetes-master --namespace digital-ocean-namespace

我在Kubernetes和法兰绒网络之间存在版本兼容性问题。

我的k8s版本是NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized ,如命令中所示:

$ kubectl get node --namespace digital-ocean-namespace
NAME                  STATUS     ROLES    AGE   VERSION
kubernetes-master     NotReady   master   82m   v1.14.1
kubernetes-worker-1   NotReady   <none>   81m   v1.14.1

使用以下命令重新安装法兰绒网络后:

1.14

然后我可以看到helm服务器版本:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:02:58Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
© www.soinside.com 2019 - 2024. All rights reserved.