Kubernetes – 如何发送请求给所有的爪牙?

我有pod,其目的是将传入的数据写入主机卷。 我在所有的爪牙里跑这个吊舱。

现在当我把NodePort服务设置到这个豆荚时,stream量将一次转到1个豆荚。

但是我如何向不同的爪牙发送请求给所有的豆荚呢? 如何绕过这里的负载平衡? 我希望这些数据在所有的奴才主机中都可用。

您需要为容器定义一个hostPort,并通过主机IP分别在每个节点上寻址每个节点。

请参阅最佳实践指南的“ 服务”部分中的注意事项。

服务使用select器来标识要代理的Pod的列表(如果它们处于就绪状态)。 您可以简单地请求与GET请求相同的pod列表:

$ curl -G "$MASTER/api/v1/namespaces/$NAMESPACE/pods?labelSelector=$KEY=$VALUE" 

然后手动将您的请求发送到每个pod ip:port端点。 如果您需要能够从集群networking外部发送请求,则可以创build一个代理窗格(通过标准方法暴露于外部networking)。 代理窗口可以用你的标签(类似于上面)来监视窗口,并将收到的请求转发到已经准备好的窗口列表。

使用hostPort和转发到节点也可以实现类似的效果,但是使用hostPort是不鼓励的(参见最佳实践 )。