By default, when traffic enters a Kubernetes cluster through a Service of type LoadBalancer, the source IP is often replaced with the IP of the node (SNAT). This means your applications and access logs see the node’s IP instead of the client’s IP.
To preserve the client IP, you can configure the underlying Service to use externalTrafficPolicy: Local.