我在Kubernetes中部署了一个WebAPI应用程序,当我们访问API时,我们需要从访问该应用程序的地方记录系统IP。简单来说,我需要从调用API的位置获取客户端IP /系统IP。为了获取IP地址,我正在使用
HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString()
,但是它总是返回Kubernetes的节点IP地址,而不是客户端IP地址。在Kubernetes中创建的服务抽象/服务的类型为“ ClusterIP”。
是否可以通过ClusterIP类型的服务获取客户端IP?
答案 0 :(得分:1)
根据link给定的Maciek Sawicki,可以从群集内部访问ClusterIP类型的服务,因此不能在群集外部访问ClusterIP类型的服务。因此,此类服务的流量来自节点或其他Pod。
但是,如果要记录客户端的IP地址,请将服务类型更改为NodePort或负载均衡器,然后将service.spec.externalTrafficPolicy
添加到以上链接中给出的值Local
中。