【问题标题】:How to expose dynamic ports using Kubernetes service on Google Container Engine?如何在 Google Container Engine 上使用 Kubernetes 服务公开动态端口?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 谢谢你,埃里克。你的回答让我有了一个新的想法,此时 Kubernetes 的服务不具备暴露多个端口的能力。我希望该服务将来可以接受多个端口。是的,我会从现在开始跟进这个问题。
    猜你喜欢
    • 1970-01-01
    • 2017-10-05
    • 2022-12-12
    • 2015-02-02
    • 2017-03-26
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    相关资源
    最近更新 更多