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

BOU*_*med 13 kubernetes kubeadm cni

我正在内部运行的centos VM上安装kubernetes(kubeadm)Virtualbox,所以我安装了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
Run Code Online (Sandbox Code Playgroud)

所以我检查了,即使安装了cni文件夹/etc也没有kubernetes-cni-0.6.0-0.x86_64。我尝试发表评论KUBELET_NETWORK_ARGS/etc/systemd/system/kubelet.service.d/10-kubeadm.conf但没有成功。

PS:

  • 我正在安装代理。

  • 我有多个网络适配器:

    • NAT:Internet的10.0.2.15/24

    • 仅限主机: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

Ani*_*ole 17

停止并禁用 apparmor 并重新启动该节点上的 Containerd 服务将解决您的问题

root@node:~# systemctl stop apparmor
root@node:~# systemctl disable apparmor 
root@node:~# systemctl restart containerd.service
Run Code Online (Sandbox Code Playgroud)


小智 13

添加 pod 网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
Run Code Online (Sandbox Code Playgroud)


i-t*_*tms 6

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

  • 如果您已经创建了先前的集群,则“ kubeadm reset”
  • 从主目录或根目录中删除“ .kube”文件夹
  • (也可以使用systemctl停止kubelet,以实现平稳设置)
  • 永久禁用计算机上的交换,尤其是在重新引导Linux系统时
  • 别忘了,根据网站上(不是Kubernetes网站)上提供的说明安装Pod Network插件。
  • 遵循kubeadm在命令窗口上给出的后期初始化步骤。

如果正确执行了所有这些步骤,则您的群集将正常运行。

另外,请不要忘记执行以下命令以在创建的集群上启用调度:

kubectl taint nodes --all node-role.kubernetes.io/master-
Run Code Online (Sandbox Code Playgroud)

关于如何从代理后面安装,您可能会发现以下有用:

使用代理安装


Vis*_*ant 5

检查此答案

使用此PR(直到批准):

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

这是一个已知的问题:coreos / flannel#1044


Ste*_*ane 5

我看不到 helm 服务器版本:

$ 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
Run Code Online (Sandbox Code Playgroud)

kubectl describe node kubernetes-master --namespace digital-ocean-namespace命令显示消息:

NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Run Code Online (Sandbox Code Playgroud)

节点尚未准备好:

$ 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
Run Code Online (Sandbox Code Playgroud)

我在 Kubernetes 和 flannel 网络之间遇到了版本兼容性问题。

我的 k8s 版本1.14如命令所示:

$ 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"}
Run Code Online (Sandbox Code Playgroud)

使用以下命令重新安装 flannel 网络后:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Run Code Online (Sandbox Code Playgroud)

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

$ helm version --tiller-namespace digital-ocean-namespace
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Run Code Online (Sandbox Code Playgroud)


BOU*_*med 2

这是https://github.com/kubernetes/kubernetes/issues/34695中提到的代理错误Github

他们建议使用kubeadm init --use-kubernetes-version v1.4.1,但我完全改变了我的网络(没有代理)并且我设法设置我的集群。

之后我们可以设置 pod 网络,请kubectl apply -f ...参阅https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network