Сбой стручков ресничек из-за неверного диапазона ip узла - PullRequest
0 голосов
/ 14 декабря 2018

Я развертываю кластер kubernetes , используя kubespray .Я изменил сетевой плагин с ситца на реснички .

К сожалению, некоторые из модулей ресничек застряли в CrashLoopBackOff.

kubectl --namespace kube-system get pods --selector k8s-app=cilium --sort-by='.status.containerStatuses[0].restartCount' -o wide
NAME           READY   STATUS             RESTARTS   AGE   IP            NODE          NOMINATED NODE   READINESS GATES
cilium-2gmwm   1/1     Running            0          14m   10.10.3.102   nodemaster1   <none>           <none>
cilium-9ccdp   1/1     Running            0          14m   10.10.3.110   node6         <none>           <none>
cilium-c9nh6   1/1     Running            0          14m   10.10.3.107   node3         <none>           <none>
cilium-r9w4z   0/1     CrashLoopBackOff   6          14m   10.10.3.109   node5         <none>           <none>
cilium-f8z2q   1/1     Running            0          14m   10.10.3.105   node1         <none>           <none>
cilium-d96cd   0/1     CrashLoopBackOff   7          14m   10.10.3.106   node2         <none>           <none>
cilium-jgmcf   0/1     CrashLoopBackOff   7          14m   10.10.3.103   nodemaster2   <none>           <none>
cilium-9zqnr   0/1     CrashLoopBackOff   7          14m   10.10.3.108   node4         <none>           <none>
cilium-llt9p   0/1     CrashLoopBackOff   7          14m   10.10.3.104   nodemaster3   <none>           <none>

При проверке журналов аварийных модулейЯ вижу это фатальное сообщение об ошибке:

level=fatal msg="The allocation CIDR is different from the previous cilium instance. This error is most likely caused by a temporary network disruption to the kube-apiserver that prevent Cilium from retrieve the node's IPv4/IPv6 allocation range. If you believe the allocation range is supposed to be different you need to clean up all Cilium state with the `cilium cleanup` command on this node. Be aware this will cause network disruption for all existing containers managed by Cilium running on this node and you will have to restart them." error="Unable to allocate internal IPv4 node IP 10.233.71.1: provided IP is not in the valid range. The range of valid IPs is 10.233.70.0/24." subsys=daemon

Кажется, что IP-адрес узла ( 10.233.71.1 в этом случае) не соответствует допустимому диапазону 10.233.70.0/24.

Я пытался изменить файл main.yaml kubespray, чтобы изменить подсеть, но мои многочисленные попытки только увеличивали и уменьшали количество сбоев ...

Например, этот прогон, который я пробовал с:

kube_service_addresses: 10.233.0.0/17
kube_pods_subnet: 10.233.128.0/17
kube_network_node_prefix: 18

Как вы можете видеть, он не работал.Если у вас есть идеи ...: -)
Thx

1 Ответ

0 голосов
/ 19 декабря 2018

Я наконец-то исправил проблему с помощью разработчиков Cilium!

Вы должны установить ключ clean-cilium-state от false до true в kubesprayfile kubespray/roles/network_plugin/cilium/templates/cilium-config.yml.j2

После развертывания вы должны отменить это логическое значение.Для этого выполните kubectl edit configmap cilium-config -n kube-system и верните ключ clean-cilium-state с true на false .

Наконец вам нужно убить стручки ресничек.
Перечислите стручки: kubectl get pods -n kube-system
Убейте стручки: kubectl delete pods cilium-xxx cilium-xxx ...

Теперь это указано как выпуск в репозитории Cilium

...