如何在Google容器引擎上使用Kubernetes服务公开动态端口?

如何在Google容器引擎上使用Kubernetes服务公开动态端口?,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我正试图通过TCP协议从本地机器连接到Google容器引擎(GKE)上的Docker容器。到目前为止,我使用了Kubernetes服务,它提供了一个外部IP地址,因此本地机器可以使用该服务连接到GKE上的容器。创建服务时,只能指定一个端口,不能指定端口范围。请参阅下面的my-ros-service.yaml。在这种情况下,我们可以从GCE外部通过11311端口访问集装箱 但是,在我的容器上运行的一些应用程序会公开动态端口以连接到其他应用程序。因此,我无法确定应用程序使用的端口号,也无法在运行应用

我正试图通过TCP协议从本地机器连接到Google容器引擎(GKE)上的Docker容器。到目前为止,我使用了Kubernetes服务,它提供了一个外部IP地址,因此本地机器可以使用该服务连接到GKE上的容器。创建服务时,只能指定一个端口,不能指定端口范围。请参阅下面的my-ros-service.yaml。在这种情况下,我们可以从GCE外部通过11311端口访问集装箱

但是,在我的容器上运行的一些应用程序会公开动态端口以连接到其他应用程序。因此,我无法确定应用程序使用的端口号,也无法在运行应用程序之前创建Kubernetes服务

到目前为止,我已经通过在运行应用程序时创建许多具有不同端口的服务来连接到容器。但这不是解决问题的现实方法

我的问题是:

如何使用Kubernetes服务从GCE外部连接到在Docker容器上公开动态端口的应用程序

如果可能的话,在运行在容器上运行的应用程序之前,我们是否可以创建一个为传入连接公开动态端口的服务

如果您能提供任何建议或信息,我们将不胜感激

先谢谢你

my-ros-service.yaml

kind: Service
apiVersion: v1beta1
id: my-ros-service
port: 11311
selector:
  name: my-ros
containerPort: 11311
createExternalLoadBalancer: true

我认为目前没有比你所做的更好的解决方案。关于每个服务具有多个端口,已经存在一个相关问题。我提到了你在这个问题上的要求。您可能希望继续了解有关您的用例的更多信息,例如您正在运行的程序(如果它是公开的),以及动态端口是否来自特定的连续范围。

谢谢您,Eric。您的回答给了我一个新的想法,即目前Kubernetes的服务不具备公开多个端口的能力。我希望该服务将来可以接受多个端口。是的,我会从现在开始跟进这个问题。