gpt4 book ai didi

networking - 副本集中所有Pod之间的消息传递

转载 作者:行者123 更新时间:2023-12-02 11:51:53 25 4
gpt4 key购买 nike

我正在编写一个要部署到Kubernetes的应用程序,我希望每个Pod都可以容纳在其中
与副本集中所有其他Pod的TCP连接,因此任何容器都可以通知另一个
某些用例中的容器。如果添加了Pod,则应在Pod与所有容器之间创建新的连接
副本集中的其他Pod。

如何从给定的Pod打开到所有其他Pod的TCP连接?即,我如何发现所有
他们的IP地址?

我有一个ClusterIP服务DNS名称,它通过选择器指向这些容器。
到目前为止,我已经考虑过尝试使用。例如,在服务器中反复打开与该DNS名称的TCP连接
循环,每次通过连接请求一个容器ID,至少在我至少说一遍后暂停
每个容器ID三个连接。然后大约每分钟重复一次,以获取新的Pod
已添加。可以使用keepalive删除与已消失的Pod的连接。

有更好的方法吗?

如果有关系,我将使用Go编写此应用程序。

最佳答案

E.g., open a TCP connection to that DNS name repeatedly in a loop, requesting a container ID over the connection each time, pausing when I've gotten say at least three connections for each container ID. Then repeating that every minute or so to get new pods that have been added.



听起来这不是一个可靠的解决方案。

Kubernetes不提供 而不提供所提供的功能。

检测 pod

一种可能的解决方案是查询Kubernetes API Server,以查找与选择器(标签)匹配的Pod。使用 client-go并查看例如 example on how to list Pods。您可能需要监视新的Pod,或定期查询。

连接到Pod

当您知道要连接的Pod的名称时,可以使用 DNS to connect to pods

关于networking - 副本集中所有Pod之间的消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59417033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com