Jérôme Petazzoni, Tiny Shell Script LLC
Note: this tutorial is also available as a 40-minute talk with the same content but without the hands-on labs.
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?
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. We will add networking with kube-proxy to provide connectivity to services, and CNI plugins to provide connectivity to pods themselves.
To get the most out of this tutorial, you should be familiar with basic Kubernetes concepts like deployments, pods, and services.
We will provide remote cloud VMs to each attendee for the duration of the tutorial, so you don't need to download or install anything prior to the tutorial. All you need is an SSH client.
Jérôme Petazzoni, Tiny Shell Script LLC
![](https://www.usenix.org/sites/default/files/styles/speaker_photo/public/petazzoni_jerome_200x230.jpg?itok=5-KSEDeG)
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.
![](https://www.usenix.org/sites/all/modules/usenix/usenix_files/images/usenix-locked.png)
author = {J{\'e}r{\^o}me Petazzoni},
title = {Deep Dive into Kubernetes Internals for Builders and Operators (Tutorial)},
year = {2019},
address = {Portland, OR},
publisher = {USENIX Association},
month = oct
}