Deep Dive into Kubernetes Internals for Builders and Operators

Monday, October 28, 2019 - 11:45 am12:30 pm

Jérôme Petazzoni, Tiny Shell Script LLC


Note: this talk is also available as a hands-on tutorial. If you prefer learning by doing, check it out!

If you operate (or plan to operate) Kubernetes, it's helpful to understand its internals: what are the components of the control plane? What are their respective roles? How do they communicate?

To get the most out of this talk, you should be familiar with basic Kubernetes concepts like deployments, pods, and services.

We'll start by explaining exactly what happens between the execution of commands like "kubectl run" and "kubectl expose" and the moment when the containers are actually running and available on the cluster.

Then we'll build a simplified cluster, one component at a time, until it can execute that "kubectl run" command, and we'll see that it's not as complicated as it sounds.

We will show how kube-proxy provides connectivity to services, and how CNI plugins provide connectivity to pods themselves.

Finally, we'll highlight some of the differences between that experiment and a production-grade cluster.

Jérôme Petazzoni, Tiny Shell Script LLC

Jérôme was part of the team that built, scaled, and operated the dotCloud PAAS, before that company became Docker. He worked seven years at the container startup, where he wore countless hats and ran containers in production before it was cool. He loves to share what he knows, which led him to give hundreds of talks and demos on containers, Docker, and Kubernetes. He trained thousands of people to deploy their apps in confidence on these platforms and continues to do so as an independent consultant. He values diversity and strives to be a good ally, or at least a decent social justice sidekick. He also collects musical instruments and can arguably play the theme of Zelda on a dozen of them.

@conference {240860,
author = {J{\'e}r{\^o}me Petazzoni},
title = {Deep Dive into Kubernetes Internals for Builders and Operators},
year = {2019},
address = {Portland, OR},
publisher = {USENIX Association},
month = oct

Presentation Video