带有法兰绒的 Kubernetes:CNI 配置未初始化

Kubernetes with flannel: CNI config uninitialized

我是 Kubernetes 的新手,正在尝试在本地机器上设置 Kubernetes 集群。裸机。没有 OpenStack,没有 Maas 什么的。

在主节点上 kubeadm init ...、从节点上 kubeadm join ... 和主节点上 applying flannel 之后,我从从节点收到消息:

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

任何人都可以告诉我我做错了什么或错过了什么步骤吗? flannel 是否也应该应用于所有从节点?如果是,他们没有 admin.conf...

非常感谢!

PS。所有节点都无法访问互联网。这意味着必须通过 ssh 手动复制所有文件。

通常 flannel 被部署为 daemonset。在所有工作节点上的含义。

问题是缺少互联网连接。将 Docker 图像手动加载到工作节点后,它们似乎已准备就绪。

很遗憾,我没有找到有用的错误消息。

我认为这个问题是由 kuberadm 首先 init coredns 而不是 init flannel 引起的,所以它抛出 "network plugin is not ready: cni config uninitialized".
解决方案:
1.按kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
安装flannel 2.重置coredns pod
kubectl delete coredns-xx-xx
3、然后运行kubectl get pods看看是否有效

如果您看到此错误 "cni0" 已经有一个不同于 10.244.1.1/24 的 IP 地址”。 按照这个:

ifconfig  cni0 down
brctl delbr cni0
ip link delete flannel.1

如果你看到这个错误"Back-off restarting failed container",你可以通过

获取日志
root@master:/home/moonx/yaml# kubectl logs coredns-86c58d9df4-x6m9w -n=kube-system
.:53
2019-01-22T08:19:38.255Z [INFO] CoreDNS-1.2.6
2019-01-22T08:19:38.255Z [INFO] linux/amd64, go1.11.2, 756749c
CoreDNS-1.2.6
linux/amd64, go1.11.2, 756749c
 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
 [FATAL] plugin/loop: Forwarding loop detected in "." zone. Exiting. See https://coredns.io/plugins/loop#troubleshooting. Probe query: "HINFO 1599094102175870692.6819166615156126341.".

然后你可以在失败的节点上看到文件“/etc/resolv.conf”,如果名称服务器是本地主机会有一个loopback.Change to:

#nameserver 127.0.1.1
nameserver 8.8.8.8