从另一个 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
我开发了一个 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