我有一个Pod my-pod-1
和一个TCP服务器,它在动态分配的端口12345
上侦听(然后,该服务器将端口注册到其他服务)。我知道我可以为服务器创建服务,以便其他Pod上的客户端可以连接到该服务,但是由于该端口是动态分配的,因此很不方便。我在想的是,其他Pod可以直接通过my-pod-1:12345
到达服务器吗?这种方法有什么问题?
答案 0 :(得分:2)
我不确定您是否可以<pod-name>:<port>
。您可以设置路由以对服务使用别名,但是动态分配的端口似乎可以防止这种情况...除非您要在一致的端口(8080?)上设置一些服务,该端口将返回有关服务的信息->分配的端口?这很可能是个可怕的主意,就在我脑海中。
我确实知道您可以直接进行<pod-IP>:<port>
。您可以使用中央注册表(为此使用了Hazelcast)来注册每个服务的名称,IP地址,端口,状态以及其他所需的数据。链接:https://hazelcast.org/
您可以通过Downward API将pod-IP
,port
和其他信息配置为Pod上的环境变量:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/