0

我正在为客户设置 Kubernetes 集群。

我之前已经多次完成这个过程,包括处理 vagrant 的细节,我已经能够不断地让 K8s 集群启动并运行而不会大惊小怪。

现在,在这个客户身上,我也在做同样的事情,但我在设置时发现了很多问题,这完全出乎意料。与我设置 Kubernetes 的其他地方相比,我看到的唯一明显区别是我有一个代理服务器,我必须经常与之抗争。没有什么NO_PROXY是环境无法处理的。

我面临的主要问题是建立运河(Calico + Flannel)。出于某种原因,在 Masters 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 安装所有东西。我注意到的一件奇怪的事情是,在查看 config ( kubeadm config view) 时,我在 kubeadm config.yaml(for kubeadm init) 上设置的大部分信息都没有出现在配置视图中,包括 etcd 证书的路径。我也不确定为什么会发生这种情况,但我已经(希望)通过编辑 kubeadm 配置映射 ( kubectl edit cm kubeadm-config -n kube-system) 并保存它来修复它。

运河仍然没有运气。

谁能帮我找出问题所在?我已经记录了我所做的配置的几乎每一步,所以如果需要我可以提供它。

编辑:

我想同时我的 master2 和 3 确实没有关联的 podCIDR。为什么会发生这种情况?我该如何添加它?

4

1 回答 1

0

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

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

然后,重新加载 kubelet。

我在这里找到了这些信息,它对我很有用。

于 2018-05-21T12:14:37.600 回答