балансировка нагрузки для кубернетов в не облачной среде - PullRequest
3 голосов
/ 14 марта 2019

Я вижу, что kubernetes может использовать ClusterIP и NodePort и LoadBalancing.Для балансировки нагрузки требуется облако.Если у меня нет облачного провайдера как я могу сбалансировать трафик между узлами?! Я знаю, что HAProxy может балансировать нагрузку, но я думаю, что этот облачный балансировщик нагрузки отличается от простого HAProxy

и я хочу знать, что отличается между HAProxy и IngressController, такими как HAProxy и Nginx

Мне нужен балансировщик нагрузки для балансировки нагрузки трафика между моими рабочими узлами.Сервисный трафик балансировки нагрузки между модулями. Я думаю, что входной контроллер является балансировщиком нагрузки 7 уровня.Я хочу балансировки нагрузки между моими узлами

Ответы [ 3 ]

2 голосов
/ 14 марта 2019

Я столкнулся с той же проблемой здесь.K8s предназначен для облачных вычислений, поэтому в процессе установки возникают некоторые проблемы.В статье ниже он дает подробное объяснение по этому поводу.

https://medium.com/@JockDaRock/metalloadbalancer-kubernetes-on-prem-baremetal-loadbalancing-101455c3ed48

В итоге, решения должны использовать NodePort или внешние службы Name.Подход, который я попытаюсь здесь, состоит в том, чтобы использовать metalLB (https://metallb.universe.tf/, https://github.com/google/metallb).

1 голос
/ 20 марта 2019

В kubernetes не должно быть необходимости балансировать нагрузку между узлами, поскольку для kubernetes бэкэнд - это модуль, а не узел.

Итак, вы должны рассмотреть Ingress Controller, а не балансировщик нагрузки, поскольку контроллеры ядра Kubernetes поставляются без некоторых контроллеров, и IC является одним из них, а служба типа ClusterIP уже выполняет базовую балансировку нагрузки.

Nginx IC великолепен. Так же как Истио (хотя разные понятия). Трафик может быть вариантом. Проверьте различные варианты микросхем и проясните концепцию Ingress Controller.

0 голосов
/ 20 марта 2019

Вы хотите использовать входной контроллер nginx или сервисную сетку, такую ​​как istio или linkerd, для внутренней балансировки нагрузки в kubernetes. В случае с nginx происходит то, что вы создаете сервис поверх пакетов. Этот сервис является абстракцией, которая может быть сбалансирована по нагрузке, но для этого все еще нужен балансировщик нагрузки. Nginx может быть использован, чтобы сделать это слишком внутренне. Как вы можете себе представить, это не идеально и не круто, а значит, неплохо было бы проверить. взгляните на посланника (https://blog.turbinelabs.io/a-basic-service-mesh-with-envoy-71d16bb7347d), istio (https://istio.io/) и linkerd (https://linkerd.io/) Несмотря на то, что это вполне возможно сделать самостоятельно, это решения для устранения многих недостающих функций, так что это также может уже в начале сделать вашу жизнь намного проще. Также есть MetalLB (https://github.com/google/metallb), который может быть вам интересен. Надеюсь, это поможет немного двигаться вперед.

...