Распределение нагрузки K8s между различными развертываниями / репликациями - PullRequest
0 голосов
/ 05 февраля 2020

у нас есть система, которая имеет 2 конечные точки в зависимости от географического местоположения. например (east_url, west_url). Одно из наших приложений должно балансировать нагрузку между этими двумя URL-адресами. В потребительском приложении создано 2 развертывания с одним и тем же образом, но разными переменными среды, такими как «url = east_url», «url = west_url».

после развертывания, у меня есть следующий запущенный модуль, каждый из которых будет иметь метку: "app = потребитель-приложение" и "регион = восток" или "регион = запад"

  • потребитель-восток-под-1
  • потребитель-восток-под- 2
  • consumer-west-pod-1
  • consumer-west-pod-2

, когда я создаю сервис clusterIP с селектором: app = consumer-app Каким-то образом он подхватывает только одну реплику. Мне просто любопытно, возможно ли в kubernates на самом деле разрешить резервное копирование Сервиса различными развертываниями?

Еще один способ сделать это, о котором я могу подумать, - это создать 2 сервиса и иметь входной контроллер для балансировки нагрузки, это возможно? мы используем Kong в качестве входного контроллера. Я ищу что-то вроде openshift, у которого могут быть «альтернативные сумки» для обслуживания маршрута. https://docs.openshift.com/container-platform/4.1/applications/deployments/route-based-deployment-strategies.html

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Мне не хватало ярлыка для восточных наборов реплик, после того как я добавил app: consumerAPP, теперь он работает нормально. Спасибо

0 голосов
/ 06 февраля 2020

TL ; DR : использовать ISTIO

С помощью ISTIO вы можете создать Виртуальные службы :

A VirtualService определяет набор правил маршрутизации traffi c, применяемых при обращении к узлу. Каждое правило маршрутизации определяет критерии соответствия для трафика c указанного протокола c. Если трафик c соответствует, то он отправляется в указанную службу назначения (или ее подмножество / версию), определенную в реестре.

VirtualService позволит вам отправить трафик c в разные бэкэнды на основе URI.

Теперь, если вы планируете действовать как A / B TEST , вы можете использовать ISTIO (правило назначения): [https://istio.io/docs/reference/config/networking/destination-rule/] .

DestinationRule определяет политики, которые применяются к трафику c, предназначенному для службы после маршрутизации.

Спецификации версии * Политики c могут быть определены путем определения именованного подмножества и переопределения настроек, указанных на уровне обслуживания

1.- Если вы используете GKE, процесс для установить ISTIO можно в здесь

2.- Если вы используете K8, работающие на виртуальной машине, процесс установки можно найти здесь

...