9

我用 初始化了 Kubernetes kubeadm init,然后我用kubeadm reset它来重置它,我发现它--pod-network-cidr是错误的。更正后,我尝试kubeadm像这样再次使用来初始化 Kubernetes:

kubeadm init --use-kubernetes-version v1.5.1 --external-etcd endpoints=http://10.111.125.131:2379 --pod-network-cidr=10.244.0.0/16

然后我在节点上遇到了一些错误

12月 28 15:30:55 ydtf-node-137 kubelet[13333]: E1228 15:30:55.838700   13333 cni.go:255] Error adding network: no IP addresses available in network: cbr0
12月 28 15:30:55 ydtf-node-137 kubelet[13333]: E1228 15:30:55.838727   13333 cni.go:209] Error while adding to cni network: no IP addresses available in network: cbr0
12月 28 15:30:55 ydtf-node-137 kubelet[13333]: E1228 15:30:55.838781   13333 docker_manager.go:2201] Failed to setup network for pod "test-701078429-tl3j2_default(6945191b-ccce-11e6-b53d-78acc0f9504e)" using network plugins "cni": no IP addresses available in network: cbr0; Skipping pod  
12月 28 15:30:56 ydtf-node-137 kubelet[13333]: E1228 15:30:56.205596   13333 pod_workers.go:184] Error syncing pod 6945191b-ccce-11e6-b53d-78acc0f9504e, skipping: failed to "SetupNetwork" for "test-701078429-tl3j2_default" with SetupNetworkError: "Failed to setup network for pod \"test-701078429-tl3j2_default(6945191b-ccce-11e6-b53d-78acc0f9504e)\" using network plugins \"cni\": no IP addresses available in network: cbr0; Skipping pod"

或者

Dec 29 10:20:02 ydtf-node-137 kubelet: E1229 10:20:02.065142   22259 pod_workers.go:184] Error syncing pod 235cd9c6-cd6c-11e6-a9cd-78acc0f9504e, skipping: failed to "SetupNetwork" for "test-701078429-zmkdf_default" with SetupNetworkError: "Failed to setup network for pod \"test-701078429-zmkdf_default(235cd9c6-cd6c-11e6-a9cd-78acc0f9504e)\" using network plugins \"cni\": \"cni0\" already has an IP address different from 10.244.1.1/24; Skipping pod"

为什么我不能为新的 Pod 创建网络?

顺便说一句,我使用法兰绒作为网络提供商,它工作正常。

[root@ydtf-master-131 k8s151]# kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                      READY     STATUS                       RESTARTS   AGE       IP               NODE
default       test-701078429-tl3j2                      0/1       ContainerCreating   0          2h        <none>           ydtf-node-137
kube-system   dummy-2088944543-hd7b7                    1/1       Running             0          2h        10.111.125.131   ydtf-master-131
kube-system   kube-apiserver-ydtf-master-131            1/1       Running             7          2h        10.111.125.131   ydtf-master-131
kube-system   kube-controller-manager-ydtf-master-131   1/1       Running             0          2h        10.111.125.131   ydtf-master-131
kube-system   kube-discovery-1769846148-bjgp8           1/1       Running             0          2h        10.111.125.131   ydtf-master-131
kube-system   kube-dns-2924299975-q8x2m                 4/4       Running             0          2h        10.244.0.3       ydtf-master-131 
kube-system   kube-flannel-ds-3fsjh                     2/2       Running             0          2h        10.111.125.137   ydtf-node-137
kube-system   kube-flannel-ds-89r72                     2/2       Running             0          2h        10.111.125.131   ydtf-master-131
kube-system   kube-proxy-7w8c4                          1/1       Running             0          2h        10.111.125.137   ydtf-node-137
kube-system   kube-proxy-jk6z6                          1/1       Running             0          2h        10.111.125.131   ydtf-master-131
kube-system   kube-scheduler-ydtf-master-131            1/1       Running             0          2h        10.111.125.131   ydtf-master-131
4

6 回答 6

16

我想通了,如果你在通过kubeadm init重新初始化 kubernetes 时更改了 --pod-network-cidr ,你应该删除一些自动创建的东西,只需在再次执行kubeadm init之前按照以下步骤操作:

  1. 在 master 和节点上执行kubeadm reset 。

  2. 在 etcd 中执行etcdctl rm --recursive 注册表重置数据。

  3. rm -rf /var/lib/cni在主节点和节点上

  4. rm -rf /run/flannel在主节点和节点上

  5. rm -rf /etc/cni在主节点和节点上

  6. ifconfig cni0在主节点和节点上关闭

  7. 主节点和节点上的brctl delbr cni0

现在,我的 Kubernetes 工作正常 :)

于 2016-12-29T03:40:21.807 回答
2

这份文件帮助很大:

https://github.com/feiskyer/kubernetes-handbook/blob/master/en/troubleshooting/pod.md

特别是适用于这个问题的部分:

$ ip link set cni0 down
$ brctl delbr cni0  

如果您在 api 服务器上执行此操作,然后重新启动机器,它应该会很快稳定下来。

于 2019-05-23T17:00:43.443 回答
2

对我有什么帮助:

  • ip link set cni0 down

    brctl delbr cni0

    删除并重新应用法兰绒

因此无需再次构建集群

于 2020-04-17T13:59:49.927 回答
1

kubeadm 重置之后和kubeadm init之前,在主节点和工作节点上执行以下操作:

  1. kubeadm reset
  2. systemctl stop kubelet&systemctl stop docker
  3. rm -rf /var/lib/cni/
  4. rm -rf /var/lib/kubelet/*
  5. rm -rf /etc/cni/
  6. ifconfig cni0 down&ip link delete cni0
  7. ifconfig flannel.1 down&ip link delete flannel.1
  8. ifconfig docker0 down

使用kubernetes 服务器版本测试:v1.13.2& flannelv0.10.0-amd64

github问题参考

于 2019-01-27T00:21:05.073 回答
1

我遇到了类似的问题,在这种情况下,解决方法是将 flannel pod 网络应用于集群:

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
于 2017-01-10T18:03:22.413 回答
0

更改后我遇到了一个问题--pod-network-cidrjoin报告成功但没有添加节点。kubeadm reset并重新加入没有效果。重置后解决apt-get remove kubelet kubeadm kubectl kubernetes-cni,然后重新启动docker和/或机器,然后重新安装,然后重新安装join

于 2017-08-12T15:01:34.737 回答