Может присоединиться к кластеру, но не может получить kubeadm-config - PullRequest
0 голосов
/ 15 марта 2019

Я следую с ответом здесь, шаг 6 .Чтобы создать свой собственный локальный minikube кластер из single master and 2 nodes.

master names minikube.

$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-01T20:05:53Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
$ kubelet --version
Kubernetes v1.13.3

, войдите в консоль minikube с помощью minikube ssh

Затем проверьте IP-адреса с помощью ifconfig

$ ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:0E:E5:B4:9C
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:eff:fee5:b49c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18727 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21337 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1621416 (1.5 MiB)  TX bytes:6858635 (6.5 MiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:04:9E:5F
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe04:9e5f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:139646 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11964 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:202559446 (193.1 MiB)  TX bytes:996669 (973.3 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:10:7A:A5
          inet addr:192.168.99.105  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe10:7aa5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2317 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2231 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:197781 (193.1 KiB)  TX bytes:199788 (195.1 KiB)

Поэтому мой minikube IP-адрес 192.168.99.105

На моем VM узле.Я проверил, что они используют одну и ту же сеть.Сети:

  1. NAT

  2. Host-only Adapter Names: vboxnet0`

Вот это nmapдоказательство отсутствия брандмауэра с портом подключения enter image description here

Выполните команду kubeadm join, чтобы присоединиться к кластеру.Если он получит точный вывод из cli.Это еще хуже.Поскольку вывод команды вызывает localhost, а когда дело доходит до исполнителя, это означает, что он вызывает себя, что неправильно, и, следовательно, после выполнения.Терминал покажет мне ошибку тайм-аута

kubeadm join 192.168.99.105:8443 --token 856tch.tpccuji4nnc2zq5g --discovery-token-ca-cert-hash sha256:cfbb7a0f9ed7fca018b45fdfecb753a88aec64d4e46b5ac9ceb6d04bbb0a46a6

kubeadm покажи мне localhost назад!enter image description here

Конечно, я не получил ни одного узла

$ kubectl get nodes
NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   104m   v1.13.3

Вопрос:

  1. Как позволить kubeadm правильно следовать моему указанному IP-адресу в cli?

  2. Как предотвратить localhost возвращение во время процесса?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Похоже, что это проблема с текущим кодом Minikube, который, я думаю, изменился с момента создания поста. Взгляните на https://github.com/kubernetes/minikube/issues/3916. Мне удалось присоединиться ко второму узлу с помощью DNATting 127.0.0.1:8443 к оригинальному мастеру миникубов.

Просто FTR, я добавил /etc/rc.local на второй узел: (замените LOCAL_IF, MASTER_IP и WORKER_IP разумными данными)

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/conf/<LOCAL_IF>/route_localnet
/sbin/iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --destination-port
8443 -j DNAT --to-destination <MASTER_IP>:8443
/sbin/iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 -d <MASTER_IP>
--dport 8443 -j SNAT --to <WORKER_IP>

Но на этом проблемы не закончились. Установка фланели с:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

работал (после распределения CIDR узлов через диспетчер контроллеров), но мой второй узел каким-то образом имел иную установку kubelet, которая установила cni как сетевой плагин, и в итоге создала новый мост (cni0), который конфликтовал с сетью докеров.

Есть много вещей, которые должны работать вместе, чтобы летать.

0 голосов
/ 16 марта 2019

На шаге 2 вы должны выполнить эту команду:

токен kubeadm create --print-join-command

Это должно обеспечить точное *Синтаксис 1008 *, вам нужно добавить рабочий узел в ваш кластер.Ничего не меняй

...