Chapter 5. Kubernetes Networking Abstractions
Previously, we covered a swath of networking fundamentals and how traffic in Kubernetes gets from A to B. In this chapter, we will discuss networking abstractions in Kubernetes, primarily service discovery and load balancing. Most notably, this is the chapter on services and ingresses. Both resources are notoriously complex, due to the large number of options, as they attempt to solve numerous use cases. They are the most visible part of the Kubernetes network stack, as they define basic network characteristics of workloads on Kubernetes. This is where developers interact with the networking stack for their applications deployed on Kubernetes.
This chapter will cover fundamental examples of Kubernetes networking abstractions and the details on\f how they work. To follow along, you will need the following tools:
-
Docker
-
KIND
-
Linkerd
You will need to be familiar with the kubectl exec
and Docker exec
commands. If you are not, our code repo will have any and all the commands we discuss, so don’t worry too much. We will also make use of ip
and netns
from Chapters 2 and 3. Note that most of these tools are for debugging and showing implementation details; you will not necessarily need them during normal operations.
Docker, KIND, and Linkerd installs are available on their respective sites, and we’ve provided more information in the book’s code repository as well.
Tip
kubectl
is a key tool in this chapter’s examples, and it’s the standard ...