Балансировка нагрузки python веб-сервер в модулях Kubernetes - PullRequest
0 голосов
/ 05 мая 2020

Я проходил Docker и Kubernetes. Я хочу создать два веб-сервера Python, и мне нужно получить к ним доступ с помощью URL-адреса publi c, и эти запросы должны быть сбалансированы между двумя серверами.

Я создал один сервер Python и изначально развернул его с помощью Docker контейнеров, и все это я делаю, используя экземпляр AWS ec2, поэтому, когда я пытался отправить запрос, я использовал ec2publicip: port. Это работает, что означает, что я создал один веб-сервер, и аналогично я сделаю то же самое для второго сервера.

Мой вопрос: если я разверну это с помощью Kubernetes - есть ли способ выполнить балансировку нагрузки Python веб-серверы внутри модуля. Если да, то может кто-нибудь подскажет, как это сделать?

1 Ответ

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

Если вы создаете две реплики модуля с помощью kubernetes развертывание и создаете службу типа LoadBalancer , автоматически создается ELB на AWS. Затем всякий раз, когда запрос приходит к ELB на AWS, он распределяет трафик c на реплики модуля. С помощью службы типа балансировщика нагрузки вы получаете расширенные возможности балансировки нагрузки на уровне 7. Без службы типа балансировщика нагрузки или входа вы получаете циклическую балансировку нагрузки на уровне 4, предлагаемую прокси-сервером kube.

Проблема с типом службы балансировки нагрузки заключается в он создаст новый ELB для каждой дорогостоящей услуги. Поэтому я рекомендую использовать входной контроллер, такой как Nginx, и выставлять входящий контроллер Nginx через один балансировщик нагрузки на AWS. Затем создайте входящий ресурс и используйте маршрутизацию на основе пути или хоста для отправки трафика c на поды за службой типа clusterIP.

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