Weave cni не назначает IP-адрес для плетения моста в узле cidr в k8s

Я пытаюсь загрузить кластер k8s, используя плагин weave as cni, который изначально был настроен без --pod-cidr и плагина weave

root@kube1:/etc/systemd/system/kubelet.service.d# kubectl get no
NAME    STATUS   ROLES    AGE   VERSION
kube1   Ready    master   31m   v1.18.2
kube2   Ready    <none>   30m   v1.18.2
kube3   Ready    <none>   31m   v1.18.2
root@kube1:/etc/systemd/system/kubelet.service.d# 

Итак, я выполнил очистку, используя следующие команды

 kubectl drain kube2 --delete-local-data --force --ignore-daemonsets
 kubectl drain kube3 --delete-local-data --force --ignore-daemonsets
 kubectl drain kube1 --delete-local-data --force --ignore-daemonsets

 kubectl delete no kube1 kube2 kube3

 kubeadm reset

 curl -L git.io/weave -o /usr/local/bin/weave
 chmod a+x /usr/local/bin/weave
 kubeadm reset
 weave reset --force

 rm /opt/cni/bin/weave-*

 iptables -P INPUT ACCEPT
 iptables -P FORWARD ACCEPT
 iptables -P OUTPUT ACCEPT
 iptables -t nat -F
 iptables -t mangle -F
 iptables -F
 iptables -X
 systemctl restart docker

Я убедился, что интерфейс плетеного моста был удален на всех трех узлах, и повторно инициировал кластер.

  kubeadm init --apiserver-advertise-address=192.168.56.101 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.100.0.0/16

Я убедился, что node-cidr был выделен рабочим узлам (pod-cidr - 10.244.0.0./16), как показано ниже.

root@kube1:/etc/systemd/system/kubelet.service.d# kubectl get no kube2 -o yaml|grep -i podCIDR|grep -i 24
  podCIDR: 10.244.2.0/24

root@kube1:/etc/systemd/system/kubelet.service.d# kubectl get no kube3 -o yaml|grep -i podCIDR|grep -i 24
  podCIDR: 10.244.1.0/24

После того, как я создал модуль плетения, я ожидал увидеть ip интерфейса плетения моста в 10.244. *, Но он был создан с конфигурацией плетения по умолчанию (10.32.0.1), похоже

root@kube2:/etc/kubernetes# ifconfig weave
weave: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet 10.32.0.1  netmask 255.240.0.0  broadcast 10.47.255.255
        inet6 fe80::187b:63ff:fe5c:a2ae  prefixlen 64  scopeid 0x20<link>
        ether 1a:7b:63:5c:a2:ae  txqueuelen 1000  (Ethernet)

Я что-то пропустил, чтобы убрать? или это поведение плагинов по умолчанию?


person JPNagarajan    schedule 22.05.2020    source источник
comment
у вас раньше была другая cni? что это было?   -  person Arghya Sadhu    schedule 22.05.2020
comment
до того же переплетения только   -  person JPNagarajan    schedule 22.05.2020


Ответы (1)


По умолчанию Weave Net использует собственный распределитель IP-адресов, который можно настроить с помощью переменной среды IPALLOC_RANGE. Ссылка на документы

Если вы измените конфигурацию CNI на каждом узле, чтобы использовать другой плагин IPAM, например "host-local", вероятно, можно получить делать именно то, что вы пытались сделать.

person Bryan    schedule 22.05.2020
comment
в таком случае фланель использует ipam локального хоста? - person JPNagarajan; 22.05.2020