Внешний балансировщик нагрузки MetalLB на docker-desktop community edition на одноузловой инфраструктуре Kubernetes с Windows 10

Я пытаюсь настроить внешний балансировщик нагрузки metalLB с намерением получить доступ к модулю nginx извне кластера, используя общедоступный IP-адрес. Я выполнил все шаги, приведенные здесь. Мне удалось получить внешний IP-адрес для типа service / nginx: LoadBalancer, но когда я пытаюсь просмотреть IP-адрес, я ничего не получаю, и он говорит: «Этот сайт недоступен».

запущен ‹code› kubectl get nodes -o wide ‹/code› показывает

введите здесь описание изображения

Интересно, разрешено ли вообще в среде win10 docker-desktop обращаться к ресурсам кластера k8s извне с общедоступного IP-адреса?


person Muhammad Arslan Akhtar    schedule 22.05.2020    source источник


Ответы (1)


Kuberntes, предоставляемый Docker Desktop, работает на виртуальной машине, и весь сетевой трафик переводится на виртуальную машину с помощью NAT. Даже если бы у вас было все правильно настроено в вашей сети для использования уровня 2 и DHCP, ваш рабочий или домашний маршрутизатор даже не знал бы, как связаться с Docker, который делает любые службы доступными только на локальном хосте.

Чтобы заставить его работать, вы можете попробовать использовать minikube с драйвером VirtualBox и настроить сетевой интерфейс на мост, чтобы виртуальная машина minikube была видна вашему маршрутизатору как автономный экземпляр и, следовательно, запросы arp могли достигать minikube.

person Matt    schedule 22.05.2020
comment
Будет ли он работать с microK8s (single node k8s) в ОС Linux на базе Ubuntu? - person Muhammad Arslan Akhtar; 22.05.2020
comment
Я не эксперт по microk8s, но думаю, что должен. Я обнаружил в документации по microk8s, что есть надстройка metalLB. - person Matt; 22.05.2020