公开kubernetes上我的传出ip地址可以访问的特定端口

公开kubernetes上我的传出ip地址可以访问的特定端口,kubernetes,Kubernetes,我正在尝试运行一个p2p客户端(IOTA),它要求我连接的节点能够连接回与我发出请求的ip地址相同的特定端口 NodePort无法工作,因为它公开为不同的端口,而不是我想要的端口。 负载平衡器无法工作,因为其他节点不知道我的负载平衡器ip地址 人们如何才能在kubernetes上使用比特币或物联网之类的p2p客户端?因为每个pod都有一个动态IP地址,通常还有一个动态名称(例如,如果您使用部署),您没有机会以某种方式使其“端点”保持静态,但您有另一种方法-使用 您可以使用StatefulSet部

我正在尝试运行一个p2p客户端(IOTA),它要求我连接的节点能够连接回与我发出请求的ip地址相同的特定端口

NodePort无法工作,因为它公开为不同的端口,而不是我想要的端口。 负载平衡器无法工作,因为其他节点不知道我的负载平衡器ip地址


人们如何才能在kubernetes上使用比特币或物联网之类的p2p客户端?

因为每个pod都有一个动态IP地址,通常还有一个动态名称(例如,如果您使用
部署
),您没有机会以某种方式使其“端点”保持静态,但您有另一种方法-使用

您可以使用
StatefulSet
部署应用程序的多个副本,并为其创建
Headless服务。
StatefulSet
中的每个副本都将使用其唯一的名称可用

以下是文档中的引用:

StatefulSet
中的每个
Pod
都从
StatefulSet
的名称和Pod的序号派生其主机名。构造的主机名的模式是
$(statefulset name)-(序数)
。上面的示例将创建三个pod,分别命名为
web-0
web-1
web-2
StatefulSet
可以使用
无头服务
来控制其
pod
的域。此
服务管理的域的形式为:
$(服务名称)。$(命名空间).svc.cluster.local
,其中“cluster.local”是群集域。创建每个
Pod
时,它将获得一个匹配的DNS子域,其形式为:
$(podname)。$(管理服务域)
,其中管理服务由
状态集
上的
serviceName
字段定义


我对你的要求感到困惑。您正在尝试在两个节点或节点与外部机器之间建立p2p吗?如果是后者,您肯定可以使用loadbalancer映射端口。可能是Im混淆。两个节点之间的p2p(群集中的我的节点和群集中之外的其他节点)。我连接到的节点希望能够在发出请求的同一ip上以及在特定端口上重新连接。如果我使用负载平衡器,我的请求ip和预期的传入ip将不同。