更新时间:2024-07-02 GMT+08:00
服务加入Istio后,如何获取客户端真实源IP?
问题现象
服务启用Istio后,访问日志中无法获取到客户端源IP。
解决方案
本文以绑定ELB类型Service的nginx应用为例,详细步骤如下:
- ELB侧开启获取客户端IP
独享型ELB默认开启源地址透传功能,无需手动开启。
- 登录弹性负载均衡ELB的管理控制台。
- 在管理控制台左上角单击图标,选择区域和项目。
- 选择“服务列表 > 网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要操作的负载均衡名称。
- 切换到“监听器”页签,单击需要修改的监听器名称右侧的“编辑”按钮。如果存在修改保护,请在监听器基本信息页面中关闭修改保护后重试。
- 开启“获取客户端IP”开关。
图1 开启开关
- 更新服务所关联的网关
- 验证获取源IP
- 使用kubectl连接集群。
- 查看nginx应用日志。
kubectl logs <pod_name>
本示例中,nginx应用获取到的源IP如下: