【发布时间】:2014-12-21 07:01:07
【问题描述】:
我正在尝试通过 TCP 协议通过 Internet 从我的本地计算机连接到 Google Container Engine(GKE) 上的 Docker 容器。到目前为止,我使用了提供外部 IP 地址的 Kubernetes 服务,因此本地机器可以使用该服务连接到 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
【问题讨论】:
标签: kubernetes google-kubernetes-engine