Как получить доступ к фланелевой сети K8s снаружи
У меня на K8s 1 мастер и 1 миньон. Я хочу балансировать трафик с помощью внешнего балансировщика нагрузки (HaProxy) вручную на модулях. Для этого я решил использовать " Headless Service" для получения прямых IP-адресов POD.
Теперь существует 3-й узел (балансировщик нагрузки) для доступа к POD или фланелевой сети через надежную сеть. Есть ли способ присоединиться к 3-му узлу во фланелевой сети установки K8s. Или я могу добавить любые маршруты для перенаправления трафика во фланелевую сеть.
Настройка PS K8s (1 мастер + 1 миньон) и 3-й узел (балансировщик нагрузки) находятся в одной подсети.
1 ответ
Вы можете проверить входной контроллер HAProxy:
HAProxy является чрезвычайно быстрым и ресурсосберегающим, что позволяет вам максимально эффективно использовать инфраструктуру и минимизировать задержки в сценариях с высоким трафиком. Это также приносит почти бесконечный список параметров для настройки и настройки. Функции HAProxy, такие как динамическое масштабирование и реконфигурация без перезагрузки, также очень ценны в этом случае использования, так как стручки Kubernetes часто порождаются, завершаются и переносятся быстрыми пакетами и в больших количествах, особенно во время развертываний.
Мы будем использовать реализацию HAProxy Ingress Controller, доступную по адресу https://github.com/jcmoraisjr/haproxy-ingress. Это проект, в который HAProxy Technologies внесла код, который позволяет Ingress Controller использовать API-интерфейс времени выполнения HAProxy. (Еще одна полезная реализация HAProxy Ingress Controller, на которую вы могли бы обратить внимание, - это https://github.com/appscode/voyager.)
Основным преимуществом этого решения является то, что входной контроллер HAProxy работает внутри кластера Kubernetes и может быть легко настроен с помощью ConfigMap. Это означает, что входной контроллер HAProxy будет использовать оверлейную сеть Flannel без какой-либо дополнительной настройки.
Это руководство может быть полезным, если вы решите попробовать:
Обновить:
Если вы хотите использовать Flannel на экземплярах вне кластера, попробуйте прочитать это руководство: