问题:
Knative是否公开了低级网络组件,这些组件允许我以这样的方式配置堆栈,即每个实例都有一个唯一的IP地址可用于出站网络?
信息
我有一个必须在队列事件上发生的工作量。传入事件将开始在API上进行提取。由于速率限制和请求数量(大约100个),该过程需要长时间运行,并且使用wait / request / wait / request / wait / ..
。代码(JS)的基本作用是,使用队列消息中的参数命中API端点,然后将100个API请求的结果发送回另一个队列。
因此,Lamdba上的无服务器成本很高,而且在AWS上也可能在同一VM上产生多个实例(经过测试),从而导致出站流量使用相同的IP。因此,Lambda不是我的选择。
我最近阅读了很多有关Knative的文章,并且我想Kubernetes堆栈提供了更好的可配置性。我需要有服务的并发实例,但是每个实例都需要有唯一的出站IP。
当前,该解决方案已部署在AWS Beanstalk上,在那里我根据队列长度对其进行扩展。因此,同时存在1-10个实例并执行API请求。我使用微型实例,因为CPU /../ ..的负载确实很低。 Beanstalk存在多个问题,这就是为什么我们要搬家。
我不希望每月获得成本优势(IP昂贵,没关系),我对Beanstalk上的部署不满意。
答案 0 :(得分:2)
恕我直言,使用KNative / Kubernetes可能不是在这里进行的方法。为了获得一些IP地址,您将不得不管理大量的复杂性。豆茎似乎在公园里散步。
根据所需的IP数量,您可以仅设置一些装有IP地址的EC2实例。一个便宜的t3.small
实例可以托管12个IPv4地址(ref),您的JS代码可以简单地从每个不同的IP地址发送请求。 (取决于您的JS http客户端,通常可以设置一个localAddress选项。)