我遇到了一个非常奇怪的网络问题,试图让Elasticsearch在本地Kubernetes集群上工作,而我完全为可能导致该问题的原因感到困惑。在这一点上,我不认为这是一个Elasticsearch问题,我认为主机中发生了一些奇怪的事情,但是我一生都无法弄清楚它是什么。
TLDR版本:“ curl -X GET http://127.0.0.1:9200”可在某些容器内部工作,而在其他容器中则不能工作。
详细信息如下:
我有一个4节点的Kubernetes集群,可以在两台不同的机器上进行测试。
但是从那里开始,当我执行以下操作时,我遇到了一种环境问题:
kubectl get pods -A -o wide
来找出elasticsearch master在哪里运行。vagrant ssh
。docker ps
来查找运行elasticsearch的容器的ID。docker exec -u root -it container_name /bin/bash
,以在容器中获取外壳。curl -X GET http://127.0.0.1:9200/_cluster/health
,这是Kubernetes用来进行健康检查的东西。在一个环境中,我得到了JSON。另一方面,我收到“连接被拒绝” 我不知道为什么在相同类型的虚拟机上运行的同一docker映像会在不同的主机上产生不同的结果。
有人可以阐明这种情况吗?