操作场景
服务通过网关访问时,默认情况下,目标容器中看到的不是客户端的源IP,如果需要保留源IP,请参考本节指导操作。
配置方法
请在CCE控制台“服务发现”页面,istio-system命名空间下,更新服务所关联的网关服务,将服务亲和改成“节点级别”。前提是已开启ELB的获取客户端IP功能(当前为默认开启)。
externalTrafficPolicy:表示此Service是否希望将外部流量路由到节点本地或集群范围的端点。有两个可用选项:Cluster(默认)和Local。Cluster隐藏了客户端IP,可能导致第二跳到另一个节点,但具有良好的整体负载分布。Local保留客户端源IP并避免LoadBalancer和NodePort类型服务的第二跳,但存在潜在的不均衡流量传播风险。
验证方式
结合httpbin镜像在“x-forward-for”字段中可以看到源IP,httpbin是一个HTTP Request & Response Service,可以向他发送请求,他将会按照指定的规则将请求返回。httpbin镜像可在SWR中搜索。使用httpbin镜像进行验证时请确保集群已开通网格。
- 登录ASM应用服务网格控制台,选择一个可用的测试网格并单击进入。
- 选择左侧“网格配置”查看其关联的集群。
- 单击集群名称进入集群详情页,单击对应集群右上角第三个图标“工作负载”进入“工作负载”页签。
- 配置工作负载的信息。
- 单击右下角“确定”完成服务创建。
- 单击右下角“创建工作负载”完成工作负载创建。
- 在集群详情页选择左侧“服务发现”页签,可在服务列表中查看到所创建的httpbin服务。
- 返回ASM应用服务网格,选择左侧“服务管理”页签,在服务管理中可查看到httpbin的配置诊断显示为异常。
- 单击此服务配置诊断中的“处理”按钮,按照弹出“配置诊断”页面对应的修复指导进行修复。
- 选择左侧“网关管理”页签,单击右上角“添加网关”,在弹出“添加网关”页面输入配置信息。
- 单击“确定”完成网关添加。
- 选择左侧“服务管理”页签,可以在“访问地址”查看到所创建路由的外部访问地址。
- 单击之前添加路由时设置映射的外部访问地址,可以在“x-forward-for”字段中查看网关获取的IP为容器段IP。
- 返回集群详情页,选择左侧导航栏“服务发现”,更改服务所关联的网关服务的配置。方法如下:
- 下拉上方“命名空间”列表选择“istio-system”。
- 展开服务后方“更多”选项,单击“更新”,在弹出“更新服务”页面将“服务亲和”更改为“节点级别”,单击“确定”。
- 返回13中访问的外部地址并刷新,若设置之后“x-forward-for”字段中显示的网关获取IP的结果为本机源IP,则完成验证。