Кластер GKE - можно ли направить трафик c с глобального http-балансировщика нагрузки на nginx входной контроллер - PullRequest
0 голосов
/ 18 февраля 2020

Я использую GKE и установил nginx входной контроллер на кластер. GCP автоматически создал балансировщик нагрузки TCP для перенаправления запроса с внешнего временного IP-адреса на узлы моего кластера (nginx).

У меня есть другое веб-приложение, развернутое на виртуальной машине, и Я хотел бы сбалансировать входящие запросы по поддомену между виртуальной машиной и кластером gke. Для этого я создал глобальный балансировщик нагрузки с 2 бэкэндами и правилами хоста и пути.

Я настроил запись DNS A, чтобы указать глобальный балансировщик нагрузки.

Я могу получить доступ к виртуальной машине из своего домена, но не могу получить доступ к входам, установленным в GKE.

Я попытался настроить gke-backend как группу экземпляров (пул узлов) и как Inte rnet указание группы конечных точек сети в балансировщик нагрузки TCP. Но безуспешно: - (

Как я могу балансировать между виртуальной машиной и кластером GKE в GCP?

Ответы [ 3 ]

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

Обычно это не делается. Начнем с того, что балансировщик нагрузки HTTP (S) не может быть ориентирован на балансировщик сетевой нагрузки. LB должен указывать на серверную службу, которая состоит из сетевой конечной точки или группы экземпляров.

Единственный способ для этого - использовать неуправляемую группу экземпляров, которая содержит все текущие узлы. Затем вы можете добавить группу неуправляемых экземпляров в качестве бэкэнд-службы к вашему HTTP (S) LB, указав Nginx Ingress nodePort в качестве бэкэнд-порта.

Проблема, описанная выше, заключается в том, что когда-либо из кластера изменение узлов (увеличение, уменьшение или замена из-за обновления), неуправляемая группа экземпляров не будет обновляться автоматически с новыми узлами. Вам нужно будет вручную обновлять группу.

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

Я предлагаю вам проверить журналы на вашем глобальном LB, чтобы увидеть, что случилось с пакетами, местом назначения которых был ваш кластер GKE, для получения дополнительной информации см. this . Если возможно, поделитесь любыми ошибками или предупреждениями.

Таким образом, мы могли бы получить лучшее представление о том, что происходит.

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

Я решил свои проблемы, используя 2 stati c IP-адреса и 2 записи DNS A, первая (* .mydomain) предназначена для кластера k8s, а вторая (service.mydomain) предназначена для моей виртуальной машины.

Это было быстрое решение, которое я только что придумал

...