Knative/Kubernetes уникальный IP для исходящего трафика
Вопрос:
Предоставляет ли Knative сетевые компоненты низкого уровня, которые позволяют мне настраивать стек таким образом, чтобы каждый экземпляр имел уникальный IP-адрес, доступный для исходящей сети?
Информация
У меня есть рабочая нагрузка, которая должна произойти в очереди событий. Входящее событие начнет выборку по API. Из-за ограничения скорости и количества запросов (около 100) процесс является долгосрочным и wait / request / wait / request / wait / ..
, В основном код (JS) выполняет задание конечной точки API с параметрами из сообщения очередей и отправку результата 100 запросов API с другой очередью.
Таким образом, безсерверность на Lamdba стоит дорого, также на AWS может быть создано несколько экземпляров на одной и той же виртуальной машине (протестировано), что приведет к тому же IP-адресу для исходящего трафика. Поэтому лямбда не вариант для меня.
В последнее время я много читал о Knative и представляю, что стек Kubernetes предлагает лучшую конфигурируемость. Мне нужно иметь параллельные экземпляры моего сервиса, но мне нужно иметь уникальный исходящий IP для каждого экземпляра.
В настоящее время решение развернуто на AWS Beanstalk, где я масштабирую их в зависимости от длины очереди. Следовательно, 1 - 10 экземпляров существуют одновременно и выполняют запросы API. Я использую микроэкземпляры, так как загрузка процессора /../.. действительно низкая. С Beanstalk было несколько проблем, поэтому мы хотели бы переехать.
Я не ожидаю ежемесячного преимущества в стоимости (IP-адреса дороги, это нормально), я просто недоволен развертыванием на Beanstalk.
1 ответ
ИМХО, переход с KNative/Kubernetes, вероятно, не тот путь, по которому следует идти дальше. Вам придется управлять кучей сложности, чтобы получить несколько IP-адресов. Бобовый стебель покажется прогулкой в парке.
В зависимости от того, сколько IP-адресов вам нужно, вы можете просто настроить несколько экземпляров EC2, загруженных IP-адресами. Один дешевый t3.small
Экземпляр может содержать 12 адресов IPv4 ( ref), а ваш код JS может просто отправлять запросы с каждого из разных IP-адресов. (В зависимости от вашего http-клиента JS обычно есть опция localAddress, которую вы можете установить.)