我已经为Java应用程序创建了一个pod,并将其作为节点端口服务公开。
我只能在集群内部而不是从外部使用curl master address:nodeport
访问它(说我的浏览器)。
节点端口服务的目的是允许外部访问Pod,对吗?那为什么不能访问它。
kubernetes版本v1.13,
在数字海洋云中运行。
预期输出: masteraddress:nodeport应该在外部起作用
的输出 编辑:
我用secrete从我的私人Docker集线器中提取docker映像,这会引起任何探测吗?
答案 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
您具有“未设置”状态,因此该节点端口未连接任何东西。