Каковы преимущества использования Kubernetes Ingress в Azure AKS - PullRequest
0 голосов
/ 21 ноября 2018

Насколько я понимаю, установка типа Service на LoadBalancer создает новый балансировщик нагрузки Azure и назначает IP-адрес для Service.Означает ли это, что у меня может быть несколько служб, использующих порт 80?Если приложение позади моего Service (приложение ASP.NET Core) может обрабатывать TLS и HTTPS, почему я не должен просто использовать LoadBalancer для любых Service, которые я хочу выставить в Интернете?

В чем преимущество использования Ingress, если меня не волнует завершение TLS (Вы можете позволить Cloudflare обрабатывать завершение TLS)?Во всяком случае, это замедляет работу, добавляя дополнительный прыжок для каждого запроса.

Обновление

В некоторых ответах ниже упоминается, что создание балансировщиков нагрузки является дорогостоящим.Следует отметить, что балансировщики нагрузки в Azure бесплатны, но они взимают плату за IP-адреса, из которых они дают вам пять бесплатно.Так что для небольших проектов, где вы хотите выставить до пяти IP-адресов, это по сути бесплатно.Более того, вы можете посмотреть объявление usign Ingress.

В некоторых ответах также упоминаются дополнительные сложности, если вы не используете Ingress.Я уже упоминал, что Cloudflare может обрабатывать завершение TLS для меня.Я также обнаружил проект external-dns Kubernetes для создания записей DNS в Cloudflare, указывающих на IP-адрес балансировщиков нагрузки?Мне кажется, что исключение Ingress уменьшает сложность, так как мне приходится настраивать и управлять ею меньше.Выбор Ingress также огромен, вероятно, я выберу не тот, который через некоторое время останется без поддержки.

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Здесь есть хорошая статья , в которой описываются различия между Service (Load Balancer) и Ingress.

Таким образом, вы можете иметь несколько Service (Load Balancer) в кластере,где каждое приложение выставлено независимо друг от друга.Основная проблема заключается в том, что каждый добавленный Load Balancer будет увеличивать стоимость вашего решения, и это не обязательно должно происходить, если только вам это строго не нужно.

Если несколько приложений прослушивают порт 80, и они находятся внутриконтейнер, нет никаких причин, вам также нужно сопоставить его с портом 80 в узле хоста.Вы можете назначить его любому порту, поскольку служба будет обрабатывать динамические сопоставления портов для вас.

В этом сценарии вход лучше всего, потому что вы можете иметь один входной список на порту 80 и направлять трафик направильный сервис, основанный на многих переменных, таких как:

  • Домен
  • Путь URL
  • Строка запроса
  • И многие другие

Вход не только для завершения TLS, но и в простых терминах - прокси \ шлюз, который будет управлять маршрутизацией к нужной услуге, завершение TLS - только одна из функций.

0 голосов
/ 21 ноября 2018

Нет, вы не можете прослушивать несколько служб на порте 80, так как подсистема балансировки нагрузки не будет знать, куда их направить (однако, вход будет).Если вы можете размещать каждую службу на другом порту, вы можете использовать балансировщик нагрузки.в качестве альтернативы, если у вас есть публичный ip для каждой службы и разные внутренние порты для каждой службы, вы можете достичь этого.

цитата: Введенная вами комбинация протокола и порта соответствует другому правилу, используемому этим балансировщиком нагрузки.Комбинация протокола и порта для каждого правила балансировки нагрузки и входящего правила NAT на балансировщике нагрузки должна быть уникальной.

Опять же, если вы разработчик, вы, вероятно, не понимаете, насколько удобнее управлять сертификатом.на входе, а не на всех отдельных контейнерах, которые должны быть доступны

...