Рейтинг:2

Как я могу получить Egress Static IP для каждого пространства имен в кластере EKS

флаг mx

Моя текущая установка включает кластер EKS с несколькими пространствами имен (мультиарендными) на множестве разных узлов EKS в частных подсетях. Я хотел бы, чтобы исходящий трафик из модулей имел выделенный EIP для каждого пространства имен. Насколько я знаю, для этой проблемы нет готовых решений. Я долго и упорно искал в интернете, но тщетно. Вот некоторые из решений, которые мне надоели, но в итоге столкнулись с препятствием.

Istio Egress Gateway Позволяет направлять весь исходящий трафик из модулей через выделенный модуль выходного шлюза. Но модуль выходного шлюза примет IP-адрес узла, на котором он работает, что не будет работать для моего варианта использования. Кроме того, я не нашел достойной документации о том, как настроить несколько модулей выходного шлюза на нескольких узлах.

Calico Egress Gateway Очень похоже на решение Istio Egress Gateway, применяются те же ограничения.

Пользовательское решение Я приступил к реализации пользовательского решения, в котором я устанавливаю несколько узлов шлюза в общедоступной подсети, каждый из которых имеет выделенный EIP. Теперь я могу изменить IP-маршруты/шлюзы в частном узле EKS, чтобы направить трафик через определенный узел шлюза на основе IP-адреса источника модуля.Это решение кажется очень неуклюжим, а операционные накладные расходы такого решения очень высоки.

Я рассмотрел такие решения, как это, но с ними не повезло.

Есть ли лучший подход/решение этой проблемы?

P.S. Мой производственный кластер очень большой, я не могу позволить себе создать кластер для каждого пространства имен.

Я разместил этот вопрос на переполнение стека также. Я действительно не уверен, какой форум является лучшим местом для этого вопроса. С удовольствием удалю его там, где это уместно.

Рейтинг:2
флаг in

Резюме из обсуждения этой темы для большей наглядности здесь:

Существует запрос функции, созданный в Гитхаб, но никаких обновлений с марта.

Calico Enterprise решит этот конкретный вариант использования, назначив IP-адрес пространству имен, как описано в их интеграции для Kubernetes. здесь:

Выходной шлюз определяет статический исходящий IP-адрес для SNAT для трафика, покидающего кластер, и применяет его к определенному пространству имен. Затем он назначает один модуль в пространстве имен в качестве выходного модуля и назначает маршрутизируемый IP-адрес, который используется специально для исходящего трафика, покидающего кластер.

Но на практике модуль шлюза Egress не поддерживает AWS VPS, поэтому он не может назначать EIP модулям Egress. Когда трафик выходит из модулей шлюза, он принимает IP-адрес самого узла в качестве исходного IP-адреса.

много разных узлов EKS в частных подсетях...

EIP не работает в частной подсети.Если у вас есть рабочие узлы, назначенные в общедоступной подсети, вы можете использовать EIP и обратный прокси-сервер на этих общедоступных узлах для предоставления услуг в частной сети. Затем вы можете использовать Calico Egress Gateway на этих общедоступных узлах для модулей обратного прокси-сервера, в свою очередь, используя базовый EIP.

Wytrzymały Wiktor avatar
флаг it
Здравствуйте, @KarthikBalasubramanian. Это [ответит на ваш вопрос] (https://stackoverflow.com/help/someone-answers)?
Рейтинг:0
флаг mx

В конце концов я остановился на решении, в котором я вывожу трафик из модулей в частной подсети через «прокси-модули», которые я настраиваю в общедоступных подсетях. Этим модулям прокси назначаются общедоступные IP-адреса, поэтому исходящий трафик автоматически принимает эти IP-адреса. С точки зрения эксплуатации в этом решении есть некоторые накладные расходы, но это лучшее, что я мог придумать, учитывая ограничения.

Ответить или комментировать

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