Ошибка CNI канала Kubernetes на мастерах - PullRequest
0 голосов
/ 18 мая 2018

Я настраиваю кластер 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 (я знаю, это странно, не спрашивайте, если это не большая проблема)
  • Я настроил etcd на systemd
  • Я изменил kube-controller-manager.yamlизменить размер маски на 25 (иначе упомянутый ранее IP не будет работать).

Я устанавливаю все с помощью Kubeadm.Одна странная вещь, которую я заметил, заключалась в том, что при просмотре конфигурации (kubeadm config view) большая часть информации, которую я настроил на kubeadm config.yaml (для kubeadm init), отсутствовала в представлении конфигурации, включая пути кetcd сертификатыЯ также не уверен, почему это произошло, но я исправил это (надеюсь), отредактировав карту конфигурации kubeadm (kubectl edit cm kubeadm-config -n kube-system) и сохранив ее.

Все еще не повезло с каналом.

Может кто-нибудь помочь мне разобраться в чем дело?Я задокументировал почти каждый шаг конфигурации, которую я сделал, поэтому, если потребуется, я смогу ее предоставить.

РЕДАКТИРОВАТЬ:

Я подумал, как на самом деле мои master2 и 3не связан с pCIDR.Почему это случилось?И как я могу добавить это?

1 Ответ

0 голосов
/ 21 мая 2018

Попробуйте отредактировать: /etc/kubernetes/manifests/kube-controller-manager.yaml и добавить

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

, затем перезагрузите кубелет.

Я нашел эту информацию здесь , и она мне пригодилась.

...