Kubernetes v1.6.2无法更新CNI配置:/etc/cni/net.d中没有网络



基于此(https://kubernetes.io/docs/getting-started-guides/kubeadm/(步骤,我已经在Centos 7 Box中安装了Kubernetes,并将kubeadm Init命令击倒。

但节点没有准备就绪状态。当我查看/var/log/消息时。在以下消息。

Apr 30 22:19:38 master kubelet: W0430 22:19:38.226441    2372 cni.go:157] Unable to update cni config: No networks found in /etc/cni/net.d
Apr 30 22:19:38 master kubelet: E0430 22:19:38.226587    2372 kubelet.go:2067] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

我的kubelet与这些参数一起运行。

 /usr/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --cgroup-driver=systemd

在我的服务器中,我没有看到/etc/cni/net.d目录。在/opt/cin/bin目录中,我看到了这些文件。

# ls  /opt/cni/bin
bridge  cnitool  dhcp  flannel  host-local  ipvlan  loopback  macvlan  noop  ptp  tuning

如何清除此错误消息?

看来您选择了法兰绒作为CNI-NetWorking。请检查是否已指定 - pod-network-cidr 10.244.0.0/16,而kubeadm init。

另外,请检查是否已为法兰绒创建了configmaps @ https://github.com/coreos/coreos/flannel/blob/master/master/documentation/kube-flannel.yml.yml

我认为这个问题是kuberadm首先凯登(Init Coredns(而不是init flannel,因此它抛出"网络插件还没有准备好:cni config notialialized"。

解决方案:
1.通过kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml安装法兰绒
2.重置核心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

如果您看到此错误"向后重新启动失败的容器",并且可以通过

获得日志
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"文件,如果名称服务器是localhost,则会有一个loopback.change.change to:

#nameserver 127.0.1.1
nameserver 8.8.8.8

github问题

如果您在AWS中...我正在使用云形成YAML,我建议您将您的kubernetes版本与区域 ID匹配:

kubernetes版本1.13.8地区:美国东部(N. Virginia((US-EAST-1(亚马逊EKS优化AMI:AMI-0D3998D69EBE9B214

然后应用您的映射:

kubectl apply -f aws-auth-cm.yaml

然后观看魔术:

kubectl get nodes --watch

https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html

上述解决方案对我没有任何作用。我发现我的服务器没有默认路由!

# 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工作正常

最新更新