В настоящее время мой кластер Кубернетес (расположенный на AWS) имеет простую настройку с Deployment, у которого есть веб-контейнер, который прослушивает 80 и 443.
В кластере также есть служба NodePort, которая предоставляет общедоступный трафик на портах 30080 и 30443. Я пытаюсь найти способ принимать общедоступный трафик на 80 и 443.
Что может быть хорошим способом сделать это?
Мои мысли о возможных решениях:
Вручную настройте ELB на AWS, который может отображать трафик 80 и 443 на порты 30080 и 30443.
Используйте LoadBalancer, поддерживаемый Кубернетес, но у меня есть некоторые проблемы с интеграцией моего кластера с AWSописано здесь. Я бы предпочел попробовать другие возможные решения, чем останавливаться на этом.
Я видел много постов, в которых говорилось о сервисе Ingress, но разные посты имеют совершенно разные настройки.
Интересно, что может быть хорошим вариантом использования Ingress в моей настройке.
Должен ли Ingress заменить мою услугу NodePort в моем случае?
Спасибо
Требуется ли для работы Ingress контроллер?
Да. Это обязательно.





Как только служба NodePort будет привязана к указанным портам на всех узлах кластера, вам просто нужно доставить трафик на любой из этих узлов или на все они. Иногда это может привести к дополнительной задержке, но с точки зрения подключения все должно работать нормально.
Вы можете настроить Балансировщик нагрузки вручную, а затем добавить все узлы кластера в его пул и настроить для них проверки работоспособности, чтобы исключить узел из пула при выходе из строя определенного узла.
Ingress фактически работает аналогичным образом. Весь трафик, поступающий на определенный порт любого узла, перенаправляется на Модуль Ingress. Контроллер входа ищет созданный Входящие объекты и настраивает Модуль Ingress в соответствии со спецификациями в этих объектах. Собственно, Контроллер входа и Модуль Ingress в моем примере - это одно и то же.
Ingress может предоставить дополнительную логику для управления трафиком на уровне HTTP, такую как маршрутизация на основе пути, корректировка запроса перед его отправкой в службу, выполнение функций конечной точки SSL и т. д. Но в любом случае вам нужно как-то доставлять внешний трафик на узлы. На этом этапе мы возвращаемся к конфигурации Балансировщик нагрузки.
В некоторых случаях, когда ваш кластер развертывается в облаке, которое предоставляет службу Балансировщик нагрузки, контроллер Ingress также заботится о создании облака Балансировщик нагрузки.
Вы использовали копс для развертывания кластера Kubernetes на AWS?
Обычно kops создают кластер, который без проблем интегрируется с AWS, поэтому вы можете использовать тип сервиса LoadBalancer. Делая все вручную, вы можете допустить небольшую ошибку конфигурации, которую будет сложно найти и исправить.
Пожалуйста, ознакомьтесь с очень хорошей статьей:
Как создать Ingress на AWS:
Я бы выбрал третье решение: вход