pod无法 curl 本地主机

5anewei6  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(424)

在端口9200上的localhost上运行一个ElasticSearch容器,但是在同一主机上的pod中,我无法 curl localhost端口9200

[root@jenkins ~]# netstat -tupln | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      4148/docker-proxy

[jenkins@kb-s-9xttg agent]$ curl http://localhost:9200
curl: (7) Failed to connect to ::1: Network is unreachable

/etc/主机


# Kubernetes-managed hosts file.

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
192.168.255.23  kbs-9xttg

我可以 curl public_host_ip:9200 ElasticSearch容器不是由kubernetes管理的,而是在同一主机上运行的。
为什么豆荚不能和你说话 localhost:9200 或者 127.0.0.1:9200 ?

mf98qq94

mf98qq941#

评论摘要:
如果您在pod中与localhost通信,那么您只与pod中的容器通信。
不同pod中的容器具有不同的ip地址,不能使用localhost进行通信。但是,它们可能在本地主机网络上公开自己的端口,类似于docker容器所做的(这就是为什么可以使用localhost从本地节点进行通信)。
在集群中,您可以使用pod-ips,但是如果您想与您的主机通话,您需要使用pod的主机网络

spec:
   hostNetwork: true

或主机的外部ip。
更多关于kubernetes网络的信息,请参阅文档和本文。

相关问题