Kubernetes networking is confusing because there are THREE different networking layers:
LAYER 1: Pod-to-Pod communication. Every pod gets its own IP. Pods can talk to each other directly. No NAT involved.
LAYER 2: Service abstraction. Services provide a stable IP for dynamic pods. Load balances across backend pods. Implements kube-proxy via iptables or IPVS.
LAYER 3: Ingress (HTTP routing). HTTP and HTTPS routing into cluster. Host-based and path-based routing. Terminates TLS.
Visualizing the flow: User goes to Internet, goes to Ingress, goes to Service, goes to Pod.
The Ingress handles HTTP routing (80/443), the Service provides stable internal IP (cluster IP), the Pod is where the application actually runs.
Want me to explain any specific layer in depth?