Предоставьте трафик Kubernetes 80 (http) и 443 (https)

В настоящее время мой кластер Кубернетес (расположенный на AWS) имеет простую настройку с Deployment, у которого есть веб-контейнер, который прослушивает 80 и 443.

В кластере также есть служба NodePort, которая предоставляет общедоступный трафик на портах 30080 и 30443. Я пытаюсь найти способ принимать общедоступный трафик на 80 и 443.

Что может быть хорошим способом сделать это?

Мои мысли о возможных решениях:

  1. Вручную настройте ELB на AWS, который может отображать трафик 80 и 443 на порты 30080 и 30443.

  2. Используйте LoadBalancer, поддерживаемый Кубернетес, но у меня есть некоторые проблемы с интеграцией моего кластера с AWSописано здесь. Я бы предпочел попробовать другие возможные решения, чем останавливаться на этом.

  3. Я видел много постов, в которых говорилось о сервисе Ingress, но разные посты имеют совершенно разные настройки. Интересно, что может быть хорошим вариантом использования Ingress в моей настройке. Должен ли Ingress заменить мою услугу NodePort в моем случае?

Спасибо

Я бы выбрал третье решение: вход

Nicola Ben 13.07.2018 17:36

Требуется ли для работы Ingress контроллер?

jiashenC 13.07.2018 21:13

Да. Это обязательно.

Nicola Ben 13.07.2018 22:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
3
2 297
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как только служба NodePort будет привязана к указанным портам на всех узлах кластера, вам просто нужно доставить трафик на любой из этих узлов или на все они. Иногда это может привести к дополнительной задержке, но с точки зрения подключения все должно работать нормально.

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

Ingress фактически работает аналогичным образом. Весь трафик, поступающий на определенный порт любого узла, перенаправляется на Модуль Ingress. Контроллер входа ищет созданный Входящие объекты и настраивает Модуль Ingress в соответствии со спецификациями в этих объектах. Собственно, Контроллер входа и Модуль Ingress в моем примере - это одно и то же.

Ingress может предоставить дополнительную логику для управления трафиком на уровне HTTP, такую ​​как маршрутизация на основе пути, корректировка запроса перед его отправкой в ​​службу, выполнение функций конечной точки SSL и т. д. Но в любом случае вам нужно как-то доставлять внешний трафик на узлы. На этом этапе мы возвращаемся к конфигурации Балансировщик нагрузки.

В некоторых случаях, когда ваш кластер развертывается в облаке, которое предоставляет службу Балансировщик нагрузки, контроллер Ingress также заботится о создании облака Балансировщик нагрузки.

Вы использовали копс для развертывания кластера Kubernetes на AWS?

Обычно kops создают кластер, который без проблем интегрируется с AWS, поэтому вы можете использовать тип сервиса LoadBalancer. Делая все вручную, вы можете допустить небольшую ошибку конфигурации, которую будет сложно найти и исправить.

Пожалуйста, ознакомьтесь с очень хорошей статьей:

Как создать Ingress на AWS:

Другие вопросы по теме