kubernetes - 用于出站流量的 Knative/Kubernetes 唯一 IP
问题描述
问题:
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 上的部署不满意。
解决方案
恕我直言,使用 KNative/Kubernetes 可能不是在这里进行的方式。为了获得一些 IP 地址,您将不得不管理大量复杂性。Beanstalk 看起来就像在公园里散步。
根据您需要多少 IP,您只需设置几个加载了 IP 地址的 EC2 实例。一个便宜的t3.small
实例可以托管 12 个 IPv4 地址 ( ref ),您的 JS 代码可以简单地从每个不同的 IP 地址发送请求。(取决于您的 JS http 客户端,通常您可以设置一个 localAddress 选项。)
推荐阅读
- php - 默认的 www.conf 总是出现在 /etc/php-fpm.d/ 中,所以我的主网站 .conf 文件由于相同的端口而变得混乱,我该如何解决这个问题?
- angular - 模块化 Angular 架构可最大限度地重用代码,但仍提供足够的灵活性
- php - 如何修复 Laravel“此路线不支持 Post 方法”?
- c - 将循环中创建的子 pid 分配给数组
- php - 是否有 wordpress 功能来检测插件是否不是最新的?
- javascript - SetimeOut 间隔因“无法将未定义或空值转换为对象”而失败
- ibm-cloud-infrastructure - 如何将关联的 VLAN 子网路由到我在 SoftLayer 上的 Vyatta?
- azure - az:错误:无法识别的参数:--query loginServer
- windows - Windows 调度程序——公平时间切片如何工作?
- java - 我有一个用户类,它有一个私有字段 ArrayList