EKS Fargate is an AWS service for "serverless" hosting of some pods in a Kubernetes cluster. The docs mention that a NAT is obligatory, why is this?
I tried using traceroute from a Fargate pod. I was able to trace the route to another pod (which hopped via the IP address of the host EC2 instance as expected). However, when I tried tracing the route to a ClusterIP service, traceroute could only get as far as the NAT's network interface. Why would internal cluster traffic between a Fargate pod and a ClusterIP (representing pods hosted by conventional nodes in the same cluster) appear to be routed via a NAT? (This seems odd because a NAT is ostensibly for traffic exiting the VPC that contains the Kubernetes cluster, whereas a ClusterIP service should only be reachable from inside the Kubernetes cluster.)
(Note, I also tried UDP or TCP SYN instead of ICMP ECHO, which gave 3 hops but all reporting the same IP as the target, and UDPLITE only gave 169.254.175.250 which I assume is Fargate infra?)