Kubernetes Canal主人CNI错误

时间:2018-05-18 16:35:53

标签: kubernetes flannel project-calico

我正在为客户建立一个Kubernetes集群。

我已经多次完成了这个过程,包括处理流浪汉细节,我已经能够不断地让K8s群集运行起来而不用太大惊小怪。

现在,对于这个客户我也是这样做的,但是在设置时我发现了很多问题,这是完全出乎意料的。 与我设置Kubernetes的其他地方相比,我看到的唯一明显区别是我有一个代理服务器,我不断与之斗争。 NO_PROXY env无法处理的任何内容。

我面临的主要问题是设立运河(Calico + Flannel)。 出于某种原因,在2号和3号大师赛上它不会开始。

NAMESPACE     NAME                                             READY     STATUS              RESTARTS   AGE   IP            NODE
kube-system   canal-2pvpr                                      2/3       CrashLoopBackOff    7          14m   10.136.3.37   devmn2.cpdprd.pt
kube-system   canal-rdmnl                                      2/3       CrashLoopBackOff    7          14m   10.136.3.38   devmn3.cpdprd.pt
kube-system   canal-swxrw                                      3/3       Running             0          14m   10.136.3.36   devmn1.cpdprd.pt
kube-system   kube-apiserver-devmn1.cpdprd.pt                  1/1       Running             1          1h    10.136.3.36   devmn1.cpdprd.pt
kube-system   kube-apiserver-devmn2.cpdprd.pt                  1/1       Running             1          4h    10.136.3.37   devmn2.cpdprd.pt
kube-system   kube-apiserver-devmn3.cpdprd.pt                  1/1       Running             1          1h    10.136.3.38   devmn3.cpdprd.pt
kube-system   kube-controller-manager-devmn1.cpdprd.pt         1/1       Running             0          15m   10.136.3.36   devmn1.cpdprd.pt
kube-system   kube-controller-manager-devmn2.cpdprd.pt         1/1       Running             0          15m   10.136.3.37   devmn2.cpdprd.pt
kube-system   kube-controller-manager-devmn3.cpdprd.pt         1/1       Running             0          15m   10.136.3.38   devmn3.cpdprd.pt
kube-system   kube-dns-86f4d74b45-vqdb4                        0/3       ContainerCreating   0          1h    <none>        devmn2.cpdprd.pt
kube-system   kube-proxy-4j7dp                                 1/1       Running             1          2h    10.136.3.38   devmn3.cpdprd.pt
kube-system   kube-proxy-l2wpm                                 1/1       Running             1          2h    10.136.3.36   devmn1.cpdprd.pt
kube-system   kube-proxy-scm9g                                 1/1       Running             1          2h    10.136.3.37   devmn2.cpdprd.pt
kube-system   kube-scheduler-devmn1.cpdprd.pt                  1/1       Running             1          1h    10.136.3.36   devmn1.cpdprd.pt
kube-system   kube-scheduler-devmn2.cpdprd.pt                  1/1       Running             1          4h    10.136.3.37   devmn2.cpdprd.pt
kube-system   kube-scheduler-devmn3.cpdprd.pt                  1/1       Running             1          1h    10.136.3.38   devmn3.cpdprd.pt

在查找特定错误时,我发现问题出在kube-flannel容器上,这会导致错误:

[exXXXXX@devmn1 ~]$ kubectl logs canal-rdmnl -n kube-system -c kube-flannel
I0518 16:01:22.555513       1 main.go:487] Using interface with name ens192 and address 10.136.3.38
I0518 16:01:22.556080       1 main.go:504] Defaulting external address to interface address (10.136.3.38)
I0518 16:01:22.565141       1 kube.go:130] Waiting 10m0s for node controller to sync
I0518 16:01:22.565167       1 kube.go:283] Starting kube subnet manager
I0518 16:01:23.565280       1 kube.go:137] Node controller sync successful
I0518 16:01:23.565311       1 main.go:234] Created subnet manager: Kubernetes Subnet Manager - devmn3.cpdprd.pt
I0518 16:01:23.565331       1 main.go:237] Installing signal handlers
I0518 16:01:23.565388       1 main.go:352] Found network config - Backend type: vxlan
I0518 16:01:23.565440       1 vxlan.go:119] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
E0518 16:01:23.565619       1 main.go:279] Error registering network: failed to acquire lease: node "devmn3.cpdprd.pt" pod cidr not assigned
I0518 16:01:23.565671       1 main.go:332] Stopping shutdownHandler...

我无法理解为什么。

一些相关信息:

  • 我的clusterCIDR和podCIDR是:192.168.151.0/25(我知道,这很奇怪,除非是一个大问题否则不要问)
  • 我在systemd上设置了etcd
  • 我修改了kube-controller-manager.yaml,将掩码大小更改为25(否则之前提到的IP将无效)。

我正在用Kubeadm安装所有东西。我注意到的一个奇怪的事情是,在查看配置(kubeadm config view)时,我在kubeadm config.yamlkubeadm init)上设置的大部分信息都没有出现在配置中view,包括etcd证书的路径。 我也不确定为什么会这样,但我已经通过编辑kubeadm配置图(kubectl edit cm kubeadm-config -n kube-system)并保存它来修复它(希望如此)。

运河仍然没有运气。

任何人都可以帮我弄清楚出了什么问题吗? 我已经记录了我所完成的配置的每一步,所以如果需要,我可以提供它。

编辑:

我想我的master2和3确实没有关联的podCIDR。为什么会这样?我该如何添加它?

1 个答案:

答案 0 :(得分:0)

尝试编辑: /etc/kubernetes/manifests/kube-controller-manager.yaml 并添加

--allocate-node-cidrs=true  
--cluster-cidr=192.168.151.0/25

然后,重新加载kubelet。

我发现了这些信息here,这对我有用。