Kubernetes cni 配置未初始化

Kubernetes 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

所以我检查了一下,里面甚至没有安装任何cni文件夹。我尝试发表评论,但没有成功。/etckubernetes-cni-0.6.0-0.x86_64KUBELET_NETWORK_ARGS/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

附言:

  • 我正在通过代理进行安装。

  • 我有多个网络适配器:

    • NAT :互联网为 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

答案1

这是一个代理错误,如Github https://github.com/kubernetes/kubernetes/issues/34695

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

正如@Radek 之前提到的,pod 网络的设置kubectl apply -f ....是在集群初始化之后进行的。

答案2

reason:NetworkPluginNotReady- 您需要先将网络解决方案安装到 kubeadm 配置的集群中,然后才能启动其他任何功能。

使用 kubeadm 创建集群 - 安装 pod 网络 | Kubernetes

答案3

好像缺少一个 docker 镜像。

检查图像是否已下载到您的机器(VM)中

docker image list或者kubeadm config images list

预期图像:quay.io/coreos/flannel v0.10.0-amd64

请参阅官方文档以获取更多所需图像

如果图像缺失,请手动下载。

docker pull quay.io/coreos/flannel:v0.10.0-amd64

更多图片:kubeadm config images pull

然后,重新启动

答案4

以上解决方案对我都不起作用。我发现我的服务器没有默认路由!

# route -n
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp9s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

所以我通过以下命令添加了默认网关:

# route add default gw 19.168.1.1
# route -n 
0.0.0.0         192.168.1.1     0.0.0.0         UG    600    0        0 wlp9s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp9s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

现在iptables工作正常

相关内容