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

时间:2018-05-15 22:00:43

标签: kubernetes

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

NodePort无法正常工作,因为它暴露为一个不同的端口然后我想要的。 LoadBalancer不起作用,因为另一个节点不知道我的负载均衡器IP地址。

人们如何在kubernetes上使用比特币或iota等p2p客户端?

1 个答案:

答案 0 :(得分:0)

因为每个pod都有一个动态IP地址,通常是一个动态名称(例如,如果你使用Deployment),你没有机会以某种方式使其'端点静态,但你有另一种方式 - StatefulSetHeadless Service

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

以下是文档中的引用:

  

Pod中的每个StatefulSet都会从StatefulSet的名称和Pod的序号中获取其主机名。构造的主机名的模式为$(statefulset name)-$(ordinal)。上面的示例将创建三个名为web-0web-1web-2的Pod。 StatefulSet可以使用Headless Service来控制其Pods的域。由此Service管理的域采用以下格式:$(service name).$(namespace).svc.cluster.local,其中“cluster.local”是群集域。在创建每个Pod时,它会获得一个匹配的DNS子域,其格式为:$(podname).$(governing service domain),其中管理服务由serviceName上的StatefulSet字段定义。< / p>