Настройте разные внутренние IP для рабочих узлов - PullRequest
0 голосов
/ 01 июля 2019

Я хочу настроить кластер kubernetes локально, где я хотел бы иметь 1 главный узел и 2 рабочих узла.Мне удалось это сделать, но я не могу получить доступ к модулям или увидеть какие-либо журналы определенного модуля, поскольку внутренний IP-адрес одинаков для всех узлов.

vagrant@k8s-head:~$ kubectl get nodes -o wide
NAME         STATUS   ROLES    AGE     VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
k8s-head     Ready    master   5m53s   v1.15.0   10.0.2.15     <none>        Ubuntu 16.04.6 LTS   4.4.0-151-generic   docker://18.6.2
k8s-node-1   Ready    <none>   4m7s    v1.15.0   10.0.2.15     <none>        Ubuntu 16.04.6 LTS   4.4.0-151-generic   docker://18.6.2
k8s-node-2   Ready    <none>   2m28s   v1.15.0   10.0.2.15     <none>        Ubuntu 16.04.6 LTS   4.4.0-151-generic   docker://18.6.2

Для решения этой проблемы у меня естьобнаружил, что должны быть выполнены следующие вещи:- добавить KUBELET_EXTRA_ARGS=--node-ip=<IP_ADDRESS> в / etc / default / kubelet файл- перезапустите kubelet, запустив:sudo systemctl daemon-reload && sudo systemctl restart kubelet

Проблема в том, что в этом месте отсутствует файл / etc / default / kubelet , и я не могу добавить этот дополнительный параметр.Попытка создания файла вручную, но похоже, что он не работает, когда я перезапускаю kubelet, IP-адрес остается прежним.

Кто-нибудь сталкивался с этой проблемой с отсутствующим файлом / etc / default / kubelet или, если есть другой, более простойспособ настроить разные внутренние IP-адреса?

1 Ответ

1 голос
/ 01 июля 2019

Нормально иметь один и тот же IP-адрес в каждом узле для кластера Kubernetes, работающего в VirtualBox , причина в том, что это NAT newtork, не предназначенный для связи между виртуальными машинами, 10.0.2.15При доступе к внешнему миру IP является NAT.

На следующей диаграмме показаны сети, созданные в кластере Kubernetes поверх VirtualBox, как вы можете видеть, каждый узел имеет одинаковый IP в NAT newtork, нодругие IP-адреса в других сетях:

Kubernetes Cluster Networks

Для доступа к POD вы можете использовать NodePort и сеть HOST ONLY.

См. Полный пример и загрузите код на Построение кластера Kubernetes с Vagrant и Ansible (без Minikube) .Это руководство, которое объясняет, как запустить кластер Kubernetes, используя Ansible playbooks, Vagrant и VirtualBox.

Он использует Calico для работы в сети и включает другое руководство по установке Istio , если вам нужна микро-сервисная сетка.

...