Открытие порта GKE Ingress - PullRequest
       126

Открытие порта GKE Ingress

0 голосов
/ 20 января 2020

Я создал облачный кластер Google kubernetes с некоторыми контейнерами API. Они выставлены теперь, используя балансировщик нагрузки. Но теперь мне нужно перейти на загрузочный балансировщик нагрузки. Поэтому я показал их через нодпорт и настроил входной балансировщик нагрузки.

Но теперь у меня проблема, мне нужно добавить правило брандмауэра, чтобы открыть NodePorts. В противном случае моя проверка здоровья Ingress не удастся. Я сделал что-то неправильно? Или это единственная возможность добавить правило брандмауэра? Если да, есть ли возможность просто разрешить траффи c от входа / проверки здоровья? В противном случае я могу связаться со своими службами через IP узлов.

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 января 2020

HTTP (S) Проверка работоспособности балансировщиков нагрузки выполняется через пул IP-адресов, которые необходимо открыть в правилах брандмауэра.

Это - это do c, который все объясняет Вы бы просто открыли трафик c для следующих диапазонов IP-адресов, и он должен работать нормально:

  • 35.191.0.0 / 16
  • 130.211.0.0 / 22 * ​​1010 *
0 голосов
/ 20 января 2020

В Kubernetes существует три основных подхода к представлению вашего приложения:

  1. использует службу Kubernetes типа LoadBalancer, которая создает внешний балансировщик нагрузки, который указывает на службу Kubernetes в вашем кластере
  2. использование Kubernetes Ingress Resource
  3. с использованием службы Kubernetes типа NodePort, которая предоставляет приложение для порта на каждом из ваших узлов

Сервис LoadBalancer является стандартным способом предоставления сервиса для inte rnet. В GKE это приведет к раскрутке Network Load Balancer, который даст вам один IP-адрес, который перенаправит все трафик c на ваш сервис.

Ingress на самом деле НЕ является типом сервиса. Вместо этого он находится перед несколькими службами и действует как «умный маршрутизатор» или точка входа в ваш кластер. Входной контроллер GKE по умолчанию раскрутит балансировщик нагрузки HTTP (S) для вас . Это позволит вам выполнять маршрутизацию как на основе пути, так и на основе поддоменов к внутренним службам. Например, вы можете отправить все на foo.yourdomain.com в службу foo, и все в пути yourdomain.com/bar/ к сервису bar.

A NodePort - это самый примитивный способ получить внешний трафик c непосредственно к вашим услугам. NodePort, как следует из названия, открывает указанный порт c на всех узлах (виртуальных машинах), и любой трафик c, отправляемый на этот порт, перенаправляется в службу.

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

Вернуться к вашему вопросу, как вы можете найти в документации :

Вы можете создавать балансировщики нагрузки HTTP (S) с помощью ресурса Ingress. Балансировщики нагрузки HTTP (S) предназначены для завершения запросов HTTP (S) и могут принимать лучшие решения о балансировке нагрузки с учетом контекста. Они предлагают такие функции, как настраиваемые карты URL и завершение TLS. GKE автоматически настраивает проверки работоспособности для балансировщиков нагрузки HTTP (S).

и

По умолчанию Ingress выполняет периодическую проверку работоспособности c, отправляя запрос GET на / путь для определения работоспособности приложения и ожидает ответа HTTP 200. Если вы хотите проверить другой путь или ожидать другой код ответа, вы можете использовать пользовательский путь проверки работоспособности .

Кроме того, посмотрите на Доступные контроллеры входа , я рекомендую вам проверить хотя бы NGINX Контроллер входа , Traefik и Istio , чтобы найти лучший для Ваш проект.

Если проблема не устранена, обновите вопрос с помощью файлов .yaml, чтобы сделать его более понятным.

РЕДАКТИРОВАТЬ Я попытался выполнить действия, описанные в документация и она работает на моем тестовом кластере без какой-либо дополнительной настройки брандмауэра.

...