基于此(https://kubernetes.io/docs/getting-started-guides/kubeadm/)步骤,我在Centos 7框中安装了kubernets,然后使用kubeadm init命令。
但节点尚未处于就绪状态。当我查看/ var / log / messages时。低于消息。
<%= @stories.each do |story| %>
<!-- RENDER story HERE -->
<% end %>
我的kubelet使用这些参数运行。
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
在我的服务器中我没有看到/etc/cni/net.d目录。在/ opt / cin / bin目录中我看到这些文件。
/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
如何清除此错误消息?
由于 SR
答案 0 :(得分:3)
看起来你已选择法兰绒作为CNI网络。 请检查您是否在kubeadm init时指定了--pod-network-cidr 10.244.0.0/16。
同时检查您是否为法兰绒创建了ConfigMaps,如@ https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
答案 1 :(得分:1)
如果您在AWS中...我使用的是云形成Yaml,建议您将Kubernetes版本AMI与Region + ID匹配:
Kubernetes版本1.13.8 地区:美国东部(弗吉尼亚北部)(us-east-1) Amazon 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
答案 2 :(得分:0)
我认为这个问题是由kuberadm首先初始化coredns而不是init法兰绒引起的,所以它抛出“网络插件尚未准备好:cni config未初始化”。
解决方案:
1.通过kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
安装法兰绒
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
如果看到此错误“后退重新启动失败的容器”,则可以通过以下方式获取日志
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,则会发生环回。更改为:
#nameserver 127.0.1.1
nameserver 8.8.8.8
答案 3 :(得分:0)
上述解决方案都没有对我有用。 我发现我的服务器没有默认路由!
# 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
工作正常