基于此(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
工作正常