Может быть полезно проверить Banzai Cloud Pipeline Kubernetes Engine (PKE) , который является «простой, безопасной и мощной платформой распространения Kubernetes, сертифицированной CNCF». Он был разработан для работы в любом облаке, виртуальной машине или на голых железных узлах, чтобы обеспечить масштабируемую и безопасную основу для частных облаков. PKE поддерживает облачные технологии и включает постоянно растущее число интеграций с облаком и платформой.
Когда я использую type = LoadBalcer, он показывает внешний IP-адрес как «ожидающий», но все работает нормально с тем же yaml, если Я развернул на GKS.
Если вы создаете службу LoadBalancer - например, пытаетесь открыть свою собственную службу на основе TCP или установить контроллер входящего трафика - интеграция с облачным провайдером позаботится о создании необходимого облака ресурсы и обратная запись конечной точки, где будет доступна ваша служба. Если у вас нет интеграции с облачным провайдером или контроллера для этой цели, ваш ресурс службы останется в состоянии ожидания.
В случае Kubernetes службы LoadBalancer являются самым простым и наиболее распространенным способом предоставления службы (избыточный или нет) для мира за пределами кластера или меня sh - для других служб, для внутренних пользователей или для rnet.
Балансировка нагрузки как концепция может происходить на разных уровни сетевой модели OSI, в основном на L4 (транспортный уровень, например TCP) и L7 (уровень приложений, например HTTP). В Kubernetes сервисы - это абстракция для L4, а Ingress - это общее c решение для маршрутизации L7.
Вам необходимо настроить metalLB.
MetalLB - один из самых популярных локальных замен для облачной интеграции LoadBalancer. Все решение работает внутри кластера Kubernetes.
Основным компонентом является контроллер Kubernetes в кластере, который наблюдает за ресурсами службы LB и на основе конфигурации, предоставленной в ConfigMap, выделяет и записывает обратно IP-адреса из выделенного бассейн для новых услуг. Он поддерживает ведущий узел для каждой службы и, в зависимости от режима работы, объявляет его через BGP или ARP (отправка незапрошенных пакетов ARP в случае аварийного переключения).
MetalLB может работать двумя способами: либо все запросы перенаправляются в модули на ведущем узле или распределяются по всем узлам с помощью kubeproxy.
Устройства балансировки нагрузки уровня 7 (обычно HTTP / HTTPS), такие как F5 BIG-IP или HAProxy и решения на основе Nginx интегрирован с применимым входным контроллером . Если они у вас есть, в большинстве случаев вам не понадобится реализация LoadBalancer.
Надеюсь, что это проливает свет на вопрос «LoadBalancer на голых металлических узлах».