Kubeadm init / join используя publi c IP - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над настройкой многоузлового, много аппаратного сервера Kubernetes Cluster. Я использую Calico и Kubeadm.

Версия с одним сервером работает на windows с использованием частной сети на хост-компьютере.

Я сталкиваюсь с проблемой сети, которую пытаюсь исправить для подключения узлов через внешнюю сеть (LAN).

Поэтому я пытаюсь использовать мостовой адаптер 'ni c virtualization' внутри виртуальных машин (узлов), чтобы обеспечить видимость по сети для удаленного сервер использует случайный режим и статический IP-адрес c. Я использую Vagrant.

Но я не могу создать IP-адрес stati c publi c по сети (LAN), возможно, у меня нет привилегии делать это.

Устранение неполадок:

  1. Для начала я попытался создать случайный IP-адрес публикуемого c, он работает. Но когда я попытался соединить рабочие узлы с мастером, это не удалось с помощью kubeadm, «соединение отказано». Команда Kubeadm join работает только в частной сети, я читал, что есть дополнительная конфигурация Kubernetes для редактирования, чтобы разрешить внешний доступ, но я не мог понять, как это сделать. Я пытался использовать: kubeadm join <public-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx, но сгенерированный файл /etc/kubernetes/bootstrapkubelet.conf и /etc/kubernetes/kubelet.conf все еще использует: 6443 внутри него. Я попытался также обновить --advertise-address.

  2. Одна из идей - создать шлюз для пересылки трафика c указанного c порта с первого net интерфейс ко второму, я использую Ubuntu / xenial на хост-машинах.

  3. Я думаю, что самое простое решение, это исправить переадресацию трафика c и распределение IP-адресов.

Я спрашиваю, может ли кто-нибудь мне помочь.

Спасибо.

1 Ответ

2 голосов
/ 01 мая 2020

При выполнении kubeadm init добавьте PUBLI C IP и PORT как часть --control-plane-endpoint параметра.

sudo kubeadm init --control-plane-endpoint "PUBLIC_IP:PORT"
...