我正在内部运行的 centos VM 上安装 kubernetes(kubeadm)Virtualbox
,因此使用 yum 我安装kubeadm, kubelet
了docker
。
现在,当我尝试设置集群时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
附言:
我正在通过代理进行安装。
我有多个网络适配器:
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 配置的集群中,然后才能启动其他任何功能。
答案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
工作正常