Chapter 6. Service Networking
In Kubernetes, pod-to-pod communication enables direct connectivity between workloads—but this model alone does not scale well for dynamic, distributed applications. Instead, most real-world applications interact through services, which provide stable virtual IPs and load balancing across dynamic backend pods. This abstraction is critical for scalability, reliability, and operational simplicity in distributed systems.
Service networking is at the core of how applications discover and reach each other in a cluster. It enables decoupling of workloads, supports horizontal scaling, and provides mechanisms for high availability.
In this chapter, we will examine how Kubernetes manages service communication, the traditional role of kube-proxy, and how Cilium enhances and ultimately replaces it with an eBPF-based datapath. Along the way, we will explore concepts such as headless services, session affinity, and external access through LoadBalancer services. You can find all the YAML manifests you will use in this chapter in the chapter06 directory of the book’s GitHub repository.
Kubernetes Service Refresher
To better understand some of the principles referred to in later sections of this book, a brief overview of Kubernetes services may be useful. This is not meant to be a comprehensive explanation, given that there are various books dedicated to this topic already (including O’Reilly’s Networking and Kubernetes and Container Networking). Instead, it serves ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access