测试 Kubernetes 中真实 IP 是否可以获取。
获取客户端真实 IP 和请求头信息,用于验证网关代理(如 Istio IngressGateway)是否正确传递客户端请求信息。
获取客户端真实 IP 地址。
curl -H "Host: ok.com" http://<ingress-gateway>/test/ip响应示例:
{
"ip": "192.168.1.100"
}获取请求头信息。
curl -H "Host: ok.com" http://<ingress-gateway>/test/header响应示例:
{
"Accept": "*/*",
"Host": "ok.com",
"X-Real-IP": "192.168.1.100",
...
}docker build -t test-ip:latest .kubectl apply -f deployment.yaml这会创建 Deployment 和 Service 资源。
kubectl apply -f gateway.yaml这会创建 Gateway 和 VirtualService 资源,将 ok.com 域名的流量路由到你的 test-ip 服务。
通过 Istio IngressGateway 域名 ok.com 访问服务。
- Gateway:
test-gateway- 监听 80 端口,接收ok.com域名流量 - VirtualService:
test-vs- 将流量路由到test-ip服务的 8080 端口