从另一个 Pod 通过 IP 调用 Pod

Call Pod by IP from another Pod

我开发了一个 python 脚本,使用 python kubernetes-client 获取 Pods' 内部 IP。

但是当我尝试从另一个 pod 向这些 IP 发出 http 请求时,我收到 Connection refused 错误。

我启动了一个临时 curl 容器:

kubectl run curl --image=radial/busyboxplus:curl -it --rm

并且拥有 pods 之一的内部 IP,我尝试发出 GET 请求:

curl http://10.133.0.2/stats

响应是:

curl: (7) Failed to connect to 10.133.0.2 port 80: Connection refused

两者 pods 都在同一个 default 命名空间中并使用相同的默认值 ServiceAccount

我知道我可以通过负载平衡的 ClusterIP 服务调用 Pods,但这样我只会随机访问一个 Pod(取决于哪个 Pod当我有同一个 Deployment 的多个副本时,服务将调用转发到)。

我需要能够分别调用多副本 Deployment 的每个 Pod。这就是为什么我要使用内部 IP。

我猜你错过了这里的端口号

应该是这样的

curl POD_IP:PORT/stats