Как получить исходящий статический IP-адрес для каждого пространства имен в кластере EKS

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

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

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

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

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

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

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

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

1
задан 5 November 2021 в 18:29
1 ответ

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

В GitHub есть запрос функции, но с марта нет обновлений.

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

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

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

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

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

1
ответ дан 9 November 2021 в 17:57

Теги

Похожие вопросы