Как развернуть службу kubernertes (тип LoadBalancer) на виртуальных машинах onprem? - PullRequest
0 голосов
/ 07 мая 2020

Как развернуть сервис kubernertes (тип LoadBalancer) на виртуальных машинах onprem? Когда я использую type = LoadBalcer, внешний IP-адрес отображается как «ожидающий», но все работает нормально с тем же yaml, если я развернул его на GKS. Мой вопрос:

Нужен ли нам балансировщик нагрузки, если я использую type = LoadBalcer на виртуальных машинах Onprem? Могу ли я вручную назначить IP LoadBalncer в yaml?

Ответы [ 2 ]

1 голос
/ 11 мая 2020

Может быть полезно проверить 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 на голых металлических узлах».

1 голос
/ 07 мая 2020

Вам необходимо настроить metalLB.

MetalLB подключается к вашему кластеру Kubernetes и обеспечивает реализацию балансировщика сетевой нагрузки. Короче говоря, он позволяет вам создавать сервисы Kubernetes типа LoadBalancer в кластерах, которые не работают на облачном провайдере, и, следовательно, не могут просто подключиться к платным продуктам для обеспечения балансировщиков нагрузки.

Для установки выполните

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml

Для получения дополнительной информации нажмите здесь для установки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...