如何从Kubernetes中的群集外部访问Pod?我将其作为节点端口服务公开,但是无法通过该节点端口访问它

时间:2019-02-07 09:06:42

标签: docker kubernetes kubernetes-service

我已经为Java应用程序创建了一个pod,并将其作为节点端口服务公开。
我只能在集群内部而不是从外部使用curl master address:nodeport访问它(说我的浏览器)。
节点端口服务的目的是允许外部访问Pod,对吗?那为什么不能访问它。

kubernetes版本v1.13,
在数字海洋云中运行。

预期输出: masteraddress:nodeport应该在外部起作用

kubectl describe svc <svc>
enter image description here

的输出

编辑:
我用secrete从我的私人Docker集线器中提取docker映像,这会引起任何探测吗?

5 个答案:

答案 0 :(得分:0)

检查节点端口是否正在为主机netstat -tunpl | grep "your node port"上的应用程序提供服务,以及本地地址是否为0.0.0.0或计算机的IP

答案 1 :(得分:0)

然后使用NodePort将其更改为负载均衡器,然后直接通过负载均衡器Ip地址访问它。或eles,您可以创建入口控制器,该控制器将进行一次入口,并且您可以重定向并公开服务

同时使用入口和服务类型的负载平衡器,您可以在外部访问应用程序

答案 2 :(得分:0)

只需尝试找到运行Pod的工作节点的IP地址即可。
master-address:nodeport更改为workernode-address:nodeport,对我有用:)

答案 3 :(得分:-1)

如果您确定一切正确并且正在运行,请检查端口是否被防火墙规则阻止,并为外部流量打开它。

答案 4 :(得分:-1)

从您的输出看来,您的Pod选择器不正确。您的输出应该类似于

Nodeport:“选择器标签” 31605 / TCP

您具有“未设置”状态,因此该节点端口未连接任何东西。

我有a nodeport example on my blog