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 ...