Everything you need to understand Pod networks, Services, Ingress, CNI plugins, NetworkPolicy, and CoreDNS — with visual diagrams.
In Kubernetes, every Pod gets its own unique IP address. Pods communicate directly without NAT — whether on the same node or across nodes — via the cluster's overlay or underlay network.
Services provide stable virtual IPs for a set of Pods. kube-proxy programs iptables/IPVS rules to load-balance traffic across healthy Pod endpoints.
Ingress exposes HTTP/HTTPS routes from outside the cluster to Services. An Ingress Controller (e.g. NGINX, Traefik, HAProxy) watches Ingress resources and configures the reverse proxy accordingly.
The Container Network Interface (CNI) is a spec for configuring Linux network interfaces for containers. Choosing the right CNI plugin dramatically affects performance, policy enforcement, and operational complexity.
NetworkPolicy resources let you control which Pods can communicate with each other and with external endpoints. By default, all traffic is allowed — adding a NetworkPolicy enables default-deny behavior for matched Pods.
CoreDNS is the default DNS server in Kubernetes. It resolves Service names to ClusterIPs and handles DNS queries from all Pods through the kube-dns ClusterIP (typically 10.96.0.10).
Curated deep-dives from the community and official docs.