diff --git a/slides/_redirects b/slides/_redirects index 68a7c0ca..31e1f372 100644 --- a/slides/_redirects +++ b/slides/_redirects @@ -2,6 +2,7 @@ #/ /kube-halfday.yml.html 200! #/ /kube-fullday.yml.html 200! #/ /kube-twodays.yml.html 200! +/ /pick.yml.html 200! # And this allows to do "git clone https://container.training". /info/refs service=git-upload-pack https://github.com/jpetazzo/container.training/info/refs?service=git-upload-pack diff --git a/slides/k8s/deploymentslideshow.md b/slides/k8s/deploymentslideshow.md index 8d36a854..d7920660 100644 --- a/slides/k8s/deploymentslideshow.md +++ b/slides/k8s/deploymentslideshow.md @@ -1,4 +1,6 @@ -## 19,000 words +# kubectl create deployment + +... in 19,000 words! They say, "a picture is worth one thousand words." diff --git a/slides/k8s/dmuc-hard.md b/slides/k8s/dmuc-hard.md index 0f2b34c6..4e45e2ae 100644 --- a/slides/k8s/dmuc-hard.md +++ b/slides/k8s/dmuc-hard.md @@ -1,10 +1,6 @@ -# Building our own cluster (hard) +# Adding nodes to the cluster -- This section assumes that you already went through - - *“Building our own cluster (medium)”* - -- In that previous section, we built a cluster with a single node +- In the previous section, we built a cluster with a single node - In this new section, we're going to add more nodes to the cluster diff --git a/slides/k8s/dmuc-medium.md b/slides/k8s/dmuc-medium.md index 097681a0..f2f88f13 100644 --- a/slides/k8s/dmuc-medium.md +++ b/slides/k8s/dmuc-medium.md @@ -1,95 +1,17 @@ -# Building our own cluster (medium) +# Building a 1-node cluster -- This section assumes that you already went through +- Ingredients: a Linux machine with... - *“Building our own cluster (easy)”* + - Ubuntu LTS -- In that section, we saw how to run each control plane component manually... + - Kubernetes, etcd, and CNI binaries installed - ...but with an older version of Kubernetes (1.19) - -- In this section, we're going to do something similar... - - ...but with recent versions of Kubernetes! - -- Note: we won't need the lab environment of that previous section - - (we're going to build a new cluster from scratch) - ---- - -## What remains the same - -- We'll use machines with Kubernetes binaries pre-downloaded - -- We'll run individual components by hand - - (etcd, API server, controller manager, scheduler, kubelet) - -- We'll run on a single node - - (but we'll be laying the groundwork to add more nodes) - -- We'll get the cluster to the point where we can run and expose pods - ---- - -## What's different - -- We'll need to generate TLS keys and certificates - - (because it's mandatory with recent versions of Kubernetes) - -- Things will be *a little bit more* secure - - (but still not 100% secure, far from it!) - -- We'll use containerd instead of Docker - - (you could probably try with CRI-O or another CRI engine, too) - -- We'll need to set up CNI for networking - -- *And we won't do everything as root this time (but we might use `sudo` a lot)* - ---- - -## Our environment - -- We will use the machine indicated as `polykube1` - -- This machine: - - - runs Ubuntu LTS - - - has Kubernetes, etcd, and CNI binaries installed - - - but nothing is running - ---- - -## Checking our environment - -- Let's make sure we have everything we need first - -.lab[ - -- Log into the `polykube1` machine - -- Check available versions: - ```bash - etcd -version - kube-apiserver --version - ``` - -] + - nothing is running --- ## The plan -We'll follow the same methodology as for the "easy" section - 1. Start API server 2. Interact with it (create Deployment and Service) @@ -100,21 +22,6 @@ We'll follow the same methodology as for the "easy" section --- -## Dealing with multiple processes - -- Again, we are going to start many processes - -- Depending on what you're comfortable with, you can: - - - open multiple windows and multiple SSH connections - - - use a terminal multiplexer like screen or tmux - - - put processes in the background with `&` -
(warning: log output might get confusing to read!) - ---- - ## Starting API server .lab[ @@ -133,7 +40,7 @@ We'll follow the same methodology as for the "easy" section ] -Just like before, we'll need to start etcd. +We'll need to start etcd. But we'll also need some TLS keys! diff --git a/slides/logistics-template.md b/slides/logistics-template.md index fe7d8986..7a3c1d2d 100644 --- a/slides/logistics-template.md +++ b/slides/logistics-template.md @@ -1,63 +1,11 @@ ## Introductions -⚠️ This slide should be customized by the tutorial instructor(s). +- Hello! I'm Jérôme Petazzoni - - - - - - - - - - - - [@alexbuisine]: https://twitter.com/alexbuisine [EphemeraSearch]: https://ephemerasearch.com/ [@jpetazzo]: https://twitter.com/jpetazzo @@ -67,16 +15,36 @@ --- -## Exercises +## Goals today -- At the end of each day, there is a series of exercises +Prepare for the CKA exam! -- To make the most out of the training, please try the exercises! +-- - (it will help to practice and memorize the content of the day) +*How?* -- We recommend to take at least one hour to work on the exercises +-- - (if you understood the content of the day, it will be much faster) +Acquire deep understanding of Kubernetes internals! -- Each day will start with a quick review of the exercises of the previous day +-- + +*How?* + +-- + +Build a Kubernetes cluster by hand! + +--- + +## History of this talk + +- [2018 CKA preparation](https://github.com/jpetazzo/dessine-moi-un-cluster) + +- [2019 LISA talk by Jérôme Petazzoni](https://www.youtube.com/watch?v=3KtEAa7_duA) + +- Kubernetes admin/ops training classes + +- [2023 Devoxx talk by Denis Germain](https://www.youtube.com/watch?v=OCMNA0dSAzc) + +- More Kubernetes admin/ops training classes diff --git a/slides/pick.yml b/slides/pick.yml new file mode 100644 index 00000000..1a93901d --- /dev/null +++ b/slides/pick.yml @@ -0,0 +1,30 @@ +title: | + Building a Kubernetes Cluster + one piece at a time + + +#chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)" +#chat: "[Gitter](https://gitter.im/jpetazzo/workshop-yyyymmdd-city)" +chat: "(In Google Meet!)" + +gitrepo: github.com/jpetazzo/container.training + +slides: https://2024-10-pick.container.training/ + +#slidenumberprefix: "#SomeHashTag — " + +exclude: +- self-paced + +content: +- shared/title.md +- logistics.md +- shared/toc.md +- + - k8s/deploymentslideshow.md + - k8s/dmuc-medium.md + - k8s/dmuc-hard.md + - k8s/cni-internals.md + - k8s/apilb.md + - k8s/control-plane-auth.md + - shared/thankyou.md