每个kubernetes吊舱的唯一外部IP

每个kubernetes吊舱的唯一外部IP,kubernetes,rate-limiting,Kubernetes,Rate Limiting,我需要扩展我的应用程序,这样它就不会因为通过它经常使用的站点的请求速率限制而被禁止(每个IP每分钟最多允许X个请求)。 我本打算使用kubernetes并在多个工作者之间分割请求,但我看到所有的pod都获得相同的外部IP。 那么我能做什么呢?我使用kubernetes守护程序将pod连接到每个节点,而不是通过更改部署来扩展,而是通过添加新节点来扩展。如果您在云中运行,您可以创建具有公共IP地址的工作节点。然后,您的POD将使用节点的公共IP地址。然后,您可以使用多个副本或守护程序,以某种方式在节

我需要扩展我的应用程序,这样它就不会因为通过它经常使用的站点的请求速率限制而被禁止(每个IP每分钟最多允许X个请求)。
我本打算使用kubernetes并在多个工作者之间分割请求,但我看到所有的pod都获得相同的外部IP。
那么我能做什么呢?

我使用kubernetes守护程序将pod连接到每个节点,而不是通过更改部署来扩展,而是通过添加新节点来扩展。

如果您在云中运行,您可以创建具有公共IP地址的工作节点。然后,您的POD将使用节点的公共IP地址。然后,您可以使用多个副本或守护程序,以某种方式在节点之间分发您的POD。

不必担心获得一个外部IP,因为如果您有3个工作进程和一个主进程,如下图所示

worker1   192.168.1.10
worker2   192.168.1.11
worker3   192.168.1.12
master    192.168.1.13
例如,如果你在30000个端口上公开nginx,kubernetes会在每个节点上打开这个端口,你可以通过

curl 192.168.1.10:30000
curl 192.168.1.11:30000
curl 192.168.1.12:30000
curl 192.168.1.13:30000

如果您希望每个工作进程都有一个pod,那么可以使用守护程序,也可以对所需的节点使用标签,这可能与Kubernetes实现关系不大,而与网络设置关系更大。这将取决于您引用的“外部IP”的来源:它是由您的ISP提供给您的吗?如果你用谷歌搜索“什么是我的ip”,它和你所说的单一ip匹配吗?如果是这样,那么您需要与ISP协商额外的外部IP


值得注意的是@JamesJJ是正确的。使用附加IP“诱骗”API允许更多连接很可能违反该站点的TOS,并可能导致您的访问被终止。

您可以编写一个内部入口,并让它在副本上进行负载平衡。@vancleff我读到了这一点,据我所知,它不会影响外部IP,您可能应该与API提供商讨论(&pay),以增加您的限制。围绕第三方的保护机制工作可不是件好事。。。或者,您可以在应用程序中进行一些缓存,以减少对第三方的访问频率吗?多个具有公共IP的NAT网关是否有帮助?使用NAT网关,您必须为每个实例配置一些自定义路由,总体而言,我不知道这是否可行。这会让你付出代价。另一方面,实例的公共IP是免费的。请使用部署,而不是具有节点关联的守护程序或具有主机作为网络的节点反关联。是的,商定的NAT将收费。这不应该低于实例成本吗?可能多个NAT GWs比多个实例便宜,但我不知道在这种情况下如何设置实例路由。