Knative / Kubernetes уникальный IP для исходящего трафика - PullRequest
2 голосов
/ 26 апреля 2019

Вопрос:

Предоставляет ли 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 Ответ

2 голосов
/ 29 апреля 2019

ИМХО, переход с KNative / Kubernetes, вероятно, не тот путь, по которому следует идти дальше.Вам придется управлять кучей сложности, чтобы получить несколько IP-адресов.Beanstalk может показаться прогулкой по парку.

В зависимости от того, сколько IP-адресов вам нужно, вы можете просто настроить несколько экземпляров EC2, загруженных IP-адресами.Один дешевый экземпляр t3.small может содержать 12 адресов IPv4 ( ref ), и ваш код JS может просто отправлять запросы с каждого из разных IP-адресов.(В зависимости от вашего http-клиента JS обычно есть опция localAddress, которую вы можете установить.)

...