问题描述
查看Tomcat或Nginx日志时候,发现日志来源IP均为Node节点IP,无法得到真实请求IP
访问流程如下
Type=NodePort:
client
\ ^
\ \
v \
node 1 <--- node 2
| ^ SNAT
| | --->
v |
endpoint
- 客户端发送 tcp 包 到 node2:nodePort
- node2 把客户端源ip地址替换为node2 的ip地址
- node2 把请求的目的地ip替换为 pod ip
- tcp包被路由到 node1, 接着达到 endpoint(如service)
- pod的响应被路由到 node2
- node2把pod的响应发送给客户端
期间客户端的源IP地址丢失(2步)
Type=LoadBalancer
client
|
lb VIP
/ ^
v /
health check ---> node 1 node 2 <--- health check
200 <--- ^ | ---> 500
| V
e