【发布时间】:2016-03-10 21:33:01
【问题描述】:
我正在运行一个小型 openshift 集群,并希望为我们的开发人员提供一个托管的 mongo 实例,他们可以在其上连接到外部。
这很容易,我想。可悲的是,看起来所有流量都必须通过 haproxy,并且仅限于 http/https。但是我的开发人员需要透明地访问正确的 mongo 端口 27017。
有没有办法将内部 pod 端口暴露给外部世界,而不知道它在哪个 pod 上运行。
现在我们肮脏的解决方法是
oc 端口转发 mongodb-1-2n1ov 27017:27017
然后客户端会从那里的机器进行 ssh 转发。
相反,我们宁愿有一个自动化的解决方案,允许虚拟定义主机名的 tcp 转发。
谁能指点我正确的方向?
【问题讨论】:
-
今天可以做一些工作(类似于下面提到的直接公开服务的解决方案)。您可以在网络中定义一个虚拟 cidr,该虚拟 cidr 被路由到您的路由器(或任何 HA 组 IP)。在这些主机上,服务代理将运行。对于要向边缘公开的每个服务,将其 externalIP 设置为虚拟 CIDR 中的一个 IP,并为该 externalIP 提供其自己的 DNS 名称。服务代理会将流量转移到 Pod。一个缺点 - 今天无法控制谁可以设置 externalIP 字段。
-
是的,这里也一样。我想和 MySQL 一样。我认为像这样的端口转发的问题是你直接转发到一个 pod。恕我直言,理想情况下,我们会转发该服务。这样做的好处是能够在不知道与谁交谈的情况下使用 DB pod。您可以随心所欲地扩展。当然,您还需要解决粘滞会话的方法。
-
我同意 dave 和 Clayton,谢谢,但我想我必须阅读更多内容。我主要是一名软件开发人员,很少修改系统管理。