我需要扩展我的应用程序,以便它不会被禁止通过它经常使用的站点的请求速率限制(每个IP每分钟允许多达X个请求)。 我打算使用kubernetes并在多个worker之间拆分请求,但我看到所有pod都获得了相同的外部IP。那我该怎么办?
我使用kubernetes DaemonSet将pod连接到每个节点,而不是通过更改部署进行扩展,我通过添加新节点进行扩展。
如果您在云中运行,则可以使用公共IP地址创建工作节点。然后你的pod将使用节点的公共IP地址。然后,您可以使用多个副本或DaemonSet以某种方式跨节点分发您的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,您可以使用DaemonSet,或者您可以使用标签到您想要的节点
这可能与您的Kubernetes实现关系不大,而与您的网络设置有关。这取决于你所引用的“exernal IP”的来源:你的ISP给你的是什么?如果你谷歌“我的IP是什么”,它是否与您正在谈论的单个IP相匹配?如果是这样,那么您需要与ISP协商以获取更多外部IP。
值得注意的是@JamesJJ是正确的。使用其他IP来“欺骗”API以允许更多连接很可能违反了该网站的服务条款,并可能导致您的访问被终止。