如何使用另一台计算机访问在主机中设置的容器?

时间:2019-11-13 09:58:57

标签: docker kubernetes

我在Linux机器上部署了带有kubernetes的mosquitto代理。现在,我想将此容器与智能手机上运行的MQTT客户端连接。我该怎么办?我应该连接到哪个IP?

我已通过机器内部的客户端连接到mosquitto代理,并且运行正常。

编辑:我正在使用NodePort:

NAMESPACE            NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default              service/mosquitto-entrypoint        NodePort    10.152.183.235   <none>        8080:30001/TCP           24h

2 个答案:

答案 0 :(得分:0)


如果您的移动应用程序位于同一网络上,那么理想情况下,NodePort必须表现良好。您必须能够使用IP 10.152.183.235来获得服务。
但这可能不是我相信的情况

  • 您必须使用LoadBalancer类型运行服务,这将为您的集群生成一个外部面向IP。下面给出一个例子,

apiVersion: v1 kind: Service metadata: name: example-service spec: selector: app: example ports: - port: 8765 targetPort: 9376 type: LoadBalancer

为您的服务定义一个yml,然后通过kubectl kubectl apply -f <yourfile>

对其进行应用

如果您拥有自己的DNS服务器,那么您可以选择使用Ingress控制器,并将服务公开给外部网络。

答案 1 :(得分:0)

如果可以从智能手机访问运行服务的主机,则可以将服务端口映射到Nodeport。

例如,如果您的计算机IP为192.168.x.y,并且您将服务映射到Hosts port / Nodeport 5000

当您连接到允许的网络时,本机允许手机的传入连接。

您可以通过192.168.x.y:5000到达服务