Назад |
Перейти на главную страницу
Как получить доступ к приложениям, развернутым в k8s на Google Cloud Platform, с помощью балансировщика нагрузки HTTP (S) Google Cloud Engine?
Цель: для доступа к приложениям, которые находятся в пространстве имен kubernetes (k8s), используя HTTP (S) Load Balancer (HLB)
Методы
Балансировка нагрузки TCP (TLB) (уровень 4)
- Кластер k8s создан на Google Cloud Platform (GCP)
- Статический IP-адрес был создан
- Создан TLB, назначен статический IP-адрес и обновлен DNS.
- При переходе на some.domain.com отображается приложение, развернутое в пространстве имен some.
- another.domain.com показывает приложение, которое работает в «другом» пространстве имен.
- При развертывании дополнительных пространств имен, например something-else, а затем переход на something-else.domain.com также возвращает приложение из этого пространства имен.
Балансировка нагрузки HTTP (S) (уровень 7)
- Предполагалось, что к приложениям можно будет получить доступ таким же образом, то есть просто замените TLB на уровень 7.
- Был использован один из официальных GCP, серверная часть была настроена, путь по умолчанию оставлен как есть, а сертификаты были настроены в разделе внешнего интерфейса.
- DNS обновлен
- Через пять минут при обращении к some.domain.com был возвращен HTTP 502.
- Входящий журнал nginx log POD был отслежен, но дополнительное ведение журнала не было добавлено при обновлении some.domain.com
- Ведение журнала GCP указывало на "внутреннюю ошибку"
- Проверка работоспособности балансировщика нагрузки изначально не работала должным образом, и когда была добавлена проверка 10256 HTTP, служба стала зеленой
- При переходе к некоторым пространствам имен отображается следующая ошибка:
Ошибка: ошибка сервера
Сервер обнаружил временную ошибку и не смог выполнить ваш запрос.
Повторите попытку через 30 секунд.
Обсуждение
- Хотя такая же проверка работоспособности, то есть та, которая используется для TLB, была добавлена и изменила цвет HLB на зеленый, это могло быть ложным срабатыванием.
- В соответствии с этот вопрос и ответ, проблема вызвана неисправной службой, но была добавлена проверка TCP 10256, которая превратила службу в зеленый, а затем проблема не исчезла. Должна ли добавляться еще одна проверка?
- Предположение, что TLB будет работать так же, выглядит неверным. Согласно журналу GCP, HLB не может даже направить трафик в пространство имен.
Подвопросы
- Какую проверку работоспособности нужно настроить для проверки HLB?
- Как маршрутизация HLB отличается от TLB?
Ознакомьтесь с приведенной ниже документацией GCP:
- Настройка Балансировка нагрузки HTTP (S) с помощью Ingress. В этой документации содержится руководство по запуску веб-приложения за внешним балансировщиком нагрузки HTTP (S) путем настройки ресурса Ingress, что очень помогает.
- Выставление приложений с использованием Сервисы - Здесь вы создаете развертывание и открываете его модули, создавая службу (например, ClusterIP (по умолчанию), NodePort, LoadBalancer, ExternalName или Headless). Затем вы отправляете HTTP-запрос в Сервис.
- Как проверки здоровья работа - Здесь вы сможете проверить диапазоны IP-адресов зондов и правила брандмауэра, необходимые для проверки работоспособности.