В Kubernetes существует три основных подхода к представлению вашего приложения:
- использует службу Kubernetes типа
LoadBalancer
, которая создает внешний балансировщик нагрузки, который указывает на службу Kubernetes в вашем кластере - использование Kubernetes
Ingress
Resource - с использованием службы 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, чтобы сделать его более понятным.
РЕДАКТИРОВАТЬ Я попытался выполнить действия, описанные в документация и она работает на моем тестовом кластере без какой-либо дополнительной настройки брандмауэра.