mirror of
https://github.com/jpetazzo/container.training.git
synced 2026-02-14 09:39:56 +00:00
🏭️ Big refactoring of December 2025
The structure of each deck should now be: - title slide - logistics (for live classes) - chat room info (for live classes) - shared/about-slides - */prereqs* (when relevant; mostly k8s classes) - shared/handson - */labs-live (for live classes) - shared/connecting (for live classes) - */labs-async - toc This is more uniform across the different courses (live and async; containers and K8S).
This commit is contained in:
@@ -1,171 +0,0 @@
|
||||
|
||||
class: title
|
||||
|
||||
# Our training environment
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Our training environment
|
||||
|
||||
- If you are attending a tutorial or workshop:
|
||||
|
||||
- a VM has been provisioned for each student
|
||||
|
||||
- If you are doing or re-doing this course on your own, you can:
|
||||
|
||||
- install [Docker Desktop][docker-desktop] or [Podman Desktop][podman-desktop]
|
||||
<br/>(available for Linux, Mac, Windows; provides a nice GUI)
|
||||
|
||||
- install [Docker CE][docker-ce] or [Podman][podman]
|
||||
<br/>(for intermediate/advanced users who prefer the CLI)
|
||||
|
||||
- try platforms like [Play With Docker][pwd] or [KodeKloud]
|
||||
<br/>(if you can't/won't install anything locally)
|
||||
|
||||
[docker-desktop]: https://docs.docker.com/desktop/
|
||||
[podman-desktop]: https://podman-desktop.io/downloads
|
||||
[docker-ce]: https://docs.docker.com/engine/install/
|
||||
[podman]: https://podman.io/docs/installation#installing-on-linux
|
||||
[pwd]: https://labs.play-with-docker.com/
|
||||
[KodeKloud]: https://kodekloud.com/free-labs/docker/
|
||||
|
||||
---
|
||||
|
||||
## Our Docker VM
|
||||
|
||||
*This section assumes that you are following this course as part of
|
||||
a tutorial, training or workshop, where each student is given an
|
||||
individual Docker VM.*
|
||||
|
||||
- The VM is created just before the training.
|
||||
|
||||
- It will stay up during the whole training.
|
||||
|
||||
- It will be destroyed shortly after the training.
|
||||
|
||||
- It comes pre-loaded with Docker and some other useful tools.
|
||||
|
||||
---
|
||||
|
||||
## What *is* Docker?
|
||||
|
||||
- "Installing Docker" really means "Installing the Docker Engine and CLI".
|
||||
|
||||
- The Docker Engine is a daemon (a service running in the background).
|
||||
|
||||
- This daemon manages containers, the same way that a hypervisor manages VMs.
|
||||
|
||||
- We interact with the Docker Engine by using the Docker CLI.
|
||||
|
||||
- The Docker CLI and the Docker Engine communicate through an API.
|
||||
|
||||
- There are many other programs and client libraries which use that API.
|
||||
|
||||
---
|
||||
|
||||
class: pic
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Can we run Docker locally?
|
||||
|
||||
- If you already have Docker (or Podman) installed, you can use it!
|
||||
|
||||
- The VMs can be convenient if:
|
||||
|
||||
- you can't/won't install Docker or Podman on your machine,
|
||||
|
||||
- your local internet connection is slow.
|
||||
|
||||
- We're going to download many container images and distribution packages.
|
||||
|
||||
- If the class takes place in a venue with slow WiFi, this can slow us down.
|
||||
|
||||
- The remote VMs have good connectivity and downloads will be fast there.
|
||||
|
||||
(Initially, we provided VMs to make sure that nobody would waste time
|
||||
with installers, or because they didn't have the right permissions
|
||||
on their machine, etc.)
|
||||
|
||||
---
|
||||
|
||||
## Connecting to your Virtual Machine
|
||||
|
||||
You need an SSH client.
|
||||
|
||||
* On OS X, Linux, and other UNIX systems, just use `ssh`:
|
||||
|
||||
```bash
|
||||
$ ssh <login>@<ip-address>
|
||||
```
|
||||
|
||||
* On Windows, if you don't have an SSH client, you can download:
|
||||
|
||||
* Putty (www.putty.org)
|
||||
|
||||
* Git BASH (https://git-for-windows.github.io/)
|
||||
|
||||
* MobaXterm (https://mobaxterm.mobatek.net/)
|
||||
|
||||
---
|
||||
|
||||
class: in-person
|
||||
|
||||
## `tailhist`
|
||||
|
||||
The shell history of the instructor is available online in real time.
|
||||
|
||||
Note the IP address of the instructor's virtual machine (A.B.C.D).
|
||||
|
||||
Open http://A.B.C.D:1088 in your browser and you should see the history.
|
||||
|
||||
The history is updated in real time (using a WebSocket connection).
|
||||
|
||||
It should be green when the WebSocket is connected.
|
||||
|
||||
If it turns red, reloading the page should fix it.
|
||||
|
||||
---
|
||||
|
||||
## Checking your Virtual Machine
|
||||
|
||||
Once logged in, make sure that you can run a basic Docker command:
|
||||
|
||||
.small[
|
||||
```bash
|
||||
$ docker version
|
||||
Client:
|
||||
Version: 18.03.0-ce
|
||||
API version: 1.37
|
||||
Go version: go1.9.4
|
||||
Git commit: 0520e24
|
||||
Built: Wed Mar 21 23:10:06 2018
|
||||
OS/Arch: linux/amd64
|
||||
Experimental: false
|
||||
Orchestrator: swarm
|
||||
|
||||
Server:
|
||||
Engine:
|
||||
Version: 18.03.0-ce
|
||||
API version: 1.37 (minimum version 1.12)
|
||||
Go version: go1.9.4
|
||||
Git commit: 0520e24
|
||||
Built: Wed Mar 21 23:08:35 2018
|
||||
OS/Arch: linux/amd64
|
||||
Experimental: false
|
||||
```
|
||||
]
|
||||
|
||||
If this doesn't work, raise your hand so that an instructor can assist you!
|
||||
|
||||
???
|
||||
|
||||
:EN:Container concepts
|
||||
:FR:Premier contact avec les conteneurs
|
||||
|
||||
:EN:- What's a container engine?
|
||||
:FR:- Qu'est-ce qu'un *container engine* ?
|
||||
@@ -1,39 +0,0 @@
|
||||
## A brief introduction
|
||||
|
||||
- This was initially written to support in-person, instructor-led workshops and tutorials
|
||||
|
||||
- These materials are maintained by [Jérôme Petazzoni](https://twitter.com/jpetazzo) and [multiple contributors](https://@@GITREPO@@/graphs/contributors)
|
||||
|
||||
- You can also follow along on your own, at your own pace
|
||||
|
||||
- We included as much information as possible in these slides
|
||||
|
||||
- We recommend having a mentor to help you ...
|
||||
|
||||
- ... Or be comfortable spending some time reading the Docker
|
||||
[documentation](https://docs.docker.com/) ...
|
||||
|
||||
- ... And looking for answers in the [Docker forums](https://forums.docker.com),
|
||||
[StackOverflow](http://stackoverflow.com/questions/tagged/docker),
|
||||
and other outlets
|
||||
|
||||
---
|
||||
|
||||
class: self-paced
|
||||
|
||||
## Hands on, you shall practice
|
||||
|
||||
- Nobody ever became a Jedi by spending their lives reading Wookiepedia
|
||||
|
||||
- Likewise, it will take more than merely *reading* these slides
|
||||
to make you an expert
|
||||
|
||||
- These slides include *tons* of demos, exercises, and examples
|
||||
|
||||
- They assume that you have access to a machine running Docker
|
||||
|
||||
- If you are attending a workshop or tutorial:
|
||||
<br/>you will be given specific instructions to access a cloud VM
|
||||
|
||||
- If you are doing this on your own:
|
||||
<br/>we will tell you how to install Docker or access a Docker environment
|
||||
19
slides/containers/labs-async.md
Normal file
19
slides/containers/labs-async.md
Normal file
@@ -0,0 +1,19 @@
|
||||
## Running your own lab environments
|
||||
|
||||
- If you are doing or re-doing this course on your own, you can:
|
||||
|
||||
- install [Docker Desktop][docker-desktop] or [Podman Desktop][podman-desktop]
|
||||
<br/>(available for Linux, Mac, Windows; provides a nice GUI)
|
||||
|
||||
- install [Docker CE][docker-ce] or [Podman][podman]
|
||||
<br/>(for intermediate/advanced users who prefer the CLI)
|
||||
|
||||
- try platforms like [Play With Docker][pwd] or [KodeKloud]
|
||||
<br/>(if you can't/won't install anything locally)
|
||||
|
||||
[docker-desktop]: https://docs.docker.com/desktop/
|
||||
[podman-desktop]: https://podman-desktop.io/downloads
|
||||
[docker-ce]: https://docs.docker.com/engine/install/
|
||||
[podman]: https://podman.io/docs/installation#installing-on-linux
|
||||
[pwd]: https://labs.play-with-docker.com/
|
||||
[KodeKloud]: https://kodekloud.com/free-labs/docker/
|
||||
43
slides/containers/labs-live.md
Normal file
43
slides/containers/labs-live.md
Normal file
@@ -0,0 +1,43 @@
|
||||
class: title
|
||||
|
||||
# Our training environment
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Our training environment
|
||||
|
||||
- If you are attending a live class, a VM has been provisioned for you!
|
||||
|
||||
- Each student gets an individual VM.
|
||||
|
||||
- The VM is created just before the training.
|
||||
|
||||
- It will stay up during the whole training.
|
||||
|
||||
- It will be destroyed shortly after the training.
|
||||
|
||||
- It comes pre-loaded with Docker and some other useful tools.
|
||||
|
||||
---
|
||||
|
||||
## Can we run Docker locally?
|
||||
|
||||
- If you already have Docker (or Podman) installed, you can use it!
|
||||
|
||||
- The VMs can be convenient if:
|
||||
|
||||
- you can't/won't install Docker or Podman on your machine,
|
||||
|
||||
- your local internet connection is slow.
|
||||
|
||||
- We're going to download many container images and distribution packages.
|
||||
|
||||
- If the class takes place in a venue with slow WiFi, this can slow us down.
|
||||
|
||||
- The remote VMs have good connectivity and downloads will be fast there.
|
||||
|
||||
(Initially, we provided VMs to make sure that nobody would waste time
|
||||
with installers, or because they didn't have the right permissions
|
||||
on their machine, etc.)
|
||||
@@ -17,17 +17,19 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- containers/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- shared/handson.md
|
||||
- containers/labs-live.md
|
||||
- shared/connecting.md
|
||||
- containers/labs-async.md
|
||||
- shared/toc.md
|
||||
-
|
||||
#- containers/Docker_Overview.md
|
||||
#- containers/Docker_History.md
|
||||
- containers/Training_Environment.md
|
||||
#- containers/Installing_Docker.md
|
||||
- containers/First_Containers.md
|
||||
- containers/Background_Containers.md
|
||||
|
||||
@@ -16,17 +16,19 @@ exclude:
|
||||
|
||||
content:
|
||||
- shared/title.md
|
||||
# - shared/logistics.md
|
||||
- containers/intro.md
|
||||
- shared/about-slides.md
|
||||
#- logistics.md
|
||||
#- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- shared/handson.md
|
||||
#- containers/labs-live.md
|
||||
#- shared/connecting.md
|
||||
- containers/labs-async.md
|
||||
- shared/toc.md
|
||||
- - containers/Docker_Overview.md
|
||||
- containers/Docker_History.md
|
||||
- containers/Training_Environment.md
|
||||
- containers/Installing_Docker.md
|
||||
- containers/First_Containers.md
|
||||
- containers/Background_Containers.md
|
||||
|
||||
@@ -17,17 +17,19 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- containers/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- shared/handson.md
|
||||
- containers/labs-live.md
|
||||
- shared/connecting.md
|
||||
- containers/labs-async.md
|
||||
- shared/toc.md
|
||||
- # DAY 1
|
||||
- containers/Docker_Overview.md
|
||||
#- containers/Docker_History.md
|
||||
- containers/Training_Environment.md
|
||||
- containers/First_Containers.md
|
||||
- containers/Background_Containers.md
|
||||
- containers/Initial_Images.md
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
## A brief introduction
|
||||
|
||||
- This was initially written by [Jérôme Petazzoni](https://twitter.com/jpetazzo) to support in-person,
|
||||
instructor-led workshops and tutorials
|
||||
|
||||
- Credit is also due to [multiple contributors](https://@@GITREPO@@/graphs/contributors) — thank you!
|
||||
|
||||
- You can also follow along on your own, at your own pace
|
||||
|
||||
- We included as much information as possible in these slides
|
||||
|
||||
- We recommend having a mentor to help you ...
|
||||
|
||||
- ... Or be comfortable spending some time reading the Kubernetes [documentation](https://kubernetes.io/docs/) ...
|
||||
|
||||
- ... And looking for answers on [StackOverflow](http://stackoverflow.com/questions/tagged/kubernetes) and other outlets
|
||||
|
||||
---
|
||||
|
||||
class: self-paced
|
||||
|
||||
## Hands on, you shall practice
|
||||
|
||||
- Nobody ever became a Jedi by spending their lives reading Wookiepedia
|
||||
|
||||
- Likewise, it will take more than merely *reading* these slides
|
||||
to make you an expert
|
||||
|
||||
- These slides include *tons* of demos, exercises, and examples
|
||||
|
||||
- They assume that you have access to a Kubernetes cluster
|
||||
|
||||
- If you are attending a workshop or tutorial:
|
||||
<br/>you will be given specific instructions to access your cluster
|
||||
|
||||
- If you are doing this on your own:
|
||||
<br/>the first chapter will give you various options to get your own cluster
|
||||
275
slides/k8s/labs-async.md
Normal file
275
slides/k8s/labs-async.md
Normal file
@@ -0,0 +1,275 @@
|
||||
## Running your own lab environments
|
||||
|
||||
- To practice outside of live classes, you will need your own cluster
|
||||
|
||||
- We'll give you 4 possibilities, depending on your goals:
|
||||
|
||||
- level 0 (no installation required)
|
||||
|
||||
- level 1 (local development cluster)
|
||||
|
||||
- level 2 (cluster with multiple nodes)
|
||||
|
||||
- level 3 ("real" cluster with all the bells and whistles)
|
||||
|
||||
---
|
||||
|
||||
## Level 0
|
||||
|
||||
- Use a free, cloud-based, environment
|
||||
|
||||
- Pros: free, and nothing to install locally
|
||||
|
||||
- Cons: lots of limitations
|
||||
|
||||
- requires online access
|
||||
|
||||
- resources (CPU, RAM, disk) are limited
|
||||
|
||||
- provides a single-node cluster
|
||||
|
||||
- by default, only available through the online IDE
|
||||
<br/>(extra steps required to use local tools and IDE)
|
||||
|
||||
- networking stack is different from a normal cluster
|
||||
|
||||
- cluster might be automatically destroyed once in a while
|
||||
|
||||
---
|
||||
|
||||
## When is it a good match?
|
||||
|
||||
- Great for your first steps with Kubernetes
|
||||
|
||||
- Convenient for "bite-sized" learning
|
||||
|
||||
(a few minutes at a time without spending time on installs and setup)
|
||||
|
||||
- Not-so-great beyond your first steps
|
||||
|
||||
- We recommend to "level up" to a local cluster ASAP!
|
||||
|
||||
---
|
||||
|
||||
## How to obtain it
|
||||
|
||||
- We prepared a "Dev container configuration"
|
||||
|
||||
(that you can use with GitHub Codespaces)
|
||||
|
||||
- This requires a GitHub account
|
||||
|
||||
(no credit card or personal information is needed, though)
|
||||
|
||||
- Option 1: [follow that link][codespaces]
|
||||
|
||||
- Option 2: go to [this repo][repo], click on `<> Code v` and `Create codespace on main`
|
||||
|
||||
---
|
||||
|
||||
## Level 1
|
||||
|
||||
- Install a local Kubernetes dev cluster
|
||||
|
||||
- Pros: free, can work with local tools
|
||||
|
||||
- Cons:
|
||||
|
||||
- usually, you get a one-node cluster
|
||||
<br/>(but some tools let you create multiple nodes)
|
||||
|
||||
- resources can be limited
|
||||
<br/>(depends on how much CPU/RAM you have on your machine)
|
||||
|
||||
- cluster is on a private network
|
||||
<br/>(not great for labs involving load balancers, ingress controllers...)
|
||||
|
||||
- support for persistent volumes might be limited
|
||||
<br/>(or non-existent)
|
||||
|
||||
---
|
||||
|
||||
## When is it a good match?
|
||||
|
||||
- Ideal for most classes and labs
|
||||
|
||||
(from basic to advanced)
|
||||
|
||||
- Notable exceptions:
|
||||
|
||||
- when you need multiple "real" nodes
|
||||
<br/>(e.g. resource scheduling, cluster autoscaling...)
|
||||
|
||||
- when you want to expose things to the outside world
|
||||
<br/>(e.g. ingress, gateway API, cert-manager...)
|
||||
|
||||
- Very easy to reset the environment to a clean slate
|
||||
|
||||
- Great way to prepare a lab or demo before executing it on a "real" cluster
|
||||
|
||||
---
|
||||
|
||||
## How to obtain it
|
||||
|
||||
- There are many options available to run local Kubernetes clusters!
|
||||
|
||||
- If you already have Docker up and running:
|
||||
|
||||
*check [KinD] or [k3d]*
|
||||
|
||||
- Otherwise:
|
||||
|
||||
*check [Docker Desktop][docker-desktop] or [Rancher Desktop][rancher-desktop]*
|
||||
|
||||
- There are also other options; this is just a shortlist!
|
||||
|
||||
[KinD]: https://kind.sigs.k8s.io/
|
||||
[k3d]:https://k3d.io/
|
||||
[docker-desktop]: https://docs.docker.com/desktop/use-desktop/kubernetes/
|
||||
[rancher-desktop]: https://docs.rancherdesktop.io/ui/preferences/kubernetes/
|
||||
|
||||
---
|
||||
|
||||
## Level 2
|
||||
|
||||
- Install a Kubernetes cluster on a few machines
|
||||
|
||||
(physical machines, virtual machines, cloud, on-premises...)
|
||||
|
||||
- Pros:
|
||||
|
||||
- very flexible; works almost anywhere (cloud VMs, home lab...)
|
||||
|
||||
- can even run "real" applications (serving real traffic)
|
||||
|
||||
- Cons:
|
||||
|
||||
- typically costs some money (hardware investment or cloud costs)
|
||||
|
||||
- still missing a few things compared to a "real" cluster
|
||||
<br/>(cloud controller manager, storage class, control plane high availability...)
|
||||
|
||||
---
|
||||
|
||||
## When is it a good match?
|
||||
|
||||
- If you already have a "home lab" or a lab at work
|
||||
|
||||
(because the machines already exist)
|
||||
|
||||
- If you want more visibility and/or control:
|
||||
|
||||
- enable alpha/experimental options and features
|
||||
|
||||
- start, stop, view logs... of individual components
|
||||
|
||||
- If you want multiple nodes to experiment with scheduling, autoscaling...
|
||||
|
||||
- To host applications that remain available when your laptop is offline :)
|
||||
|
||||
---
|
||||
|
||||
## How to obtain it
|
||||
|
||||
- Option 1:
|
||||
|
||||
*provision a few machines; [install `kubeadm`][kubeadm]; use `kubeadm` to install cluster*
|
||||
|
||||
- Option 2:
|
||||
|
||||
*use [`labctl`][labctl] to automate the previous steps*
|
||||
|
||||
*(labctl supports [10+ public and private cloud platforms][labctl-vms])*
|
||||
|
||||
- Option 3:
|
||||
|
||||
*use the Kubernetes distro of your choice!*
|
||||
|
||||
---
|
||||
|
||||
## Level 3
|
||||
|
||||
- Use a managed Kubernetes cluster
|
||||
|
||||
- Pros:
|
||||
|
||||
- it's the real deal!
|
||||
|
||||
- Cons:
|
||||
|
||||
- recurring cloud costs
|
||||
|
||||
---
|
||||
|
||||
## When is it a good match?
|
||||
|
||||
- If you want a highly-available cluster and control plane
|
||||
|
||||
- To have all the cloud features
|
||||
|
||||
(`LoadBalancer` services, `StorageClass` for stateful apps, cluster autoscaling...)
|
||||
|
||||
- To host your first production stacks
|
||||
|
||||
---
|
||||
|
||||
## How to obtain it
|
||||
|
||||
- Option 1:
|
||||
|
||||
*use the CLI / Web UI / Terraform... for your cloud provider*
|
||||
|
||||
- Option 2:
|
||||
|
||||
*use [`labctl`][labctl] to provision a cluster with Terraform/OpenTofu*
|
||||
|
||||
---
|
||||
|
||||
## What's `labctl`?
|
||||
|
||||
- `labctl` is the tool that we use to provision virtual machines and clusters for live classes
|
||||
|
||||
- It can create and configure hundreds of VMs and clusters in a few minutes
|
||||
|
||||
- It supports 10+ cloud providers
|
||||
|
||||
- It's very useful if you need to provision many clusters
|
||||
|
||||
(e.g. to run your own workshop with your team!)
|
||||
|
||||
- It can also be used to provision a single cluster quickly
|
||||
|
||||
(for testing or educational purposes)
|
||||
|
||||
- Its Terraform configurations can also be useful on their own
|
||||
|
||||
(e.g. as a base when building your own infra-as-code)
|
||||
|
||||
---
|
||||
|
||||
## Our Kubernetes toolbox
|
||||
|
||||
- We're going to use a lot of different tools
|
||||
|
||||
(kubectl, stern, helm, k9s, krew, and many more)
|
||||
|
||||
- We suggest that you install them progressively
|
||||
|
||||
(when we introduce them, if you think they'll be useful to you!)
|
||||
|
||||
- We have also prepared a container image: [jpetazzo/shpod]
|
||||
|
||||
- `shpod` contains 30+ Docker and Kubernetes tools
|
||||
|
||||
(along with shell customizations like prompt, completion...)
|
||||
|
||||
- You can use it to work with your Kubernetes clusters
|
||||
|
||||
- It can also be used as an SSH server if needed
|
||||
|
||||
[codespaces]: https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=37004081&skip_quickstart=true
|
||||
[repo]: https://github.com/jpetazzo/container.training
|
||||
[kubeadm]: https://kubernetes.io/docs/reference/setup-tools/kubeadm/
|
||||
[labctl]: https://github.com/jpetazzo/container.training/tree/main/prepare-labs
|
||||
[labctl-vms]: https://github.com/jpetazzo/container.training/tree/main/prepare-labs/terraform/virtual-machines
|
||||
[jpetazzo/shpod]: https://github.com/jpetazzo/shpod
|
||||
42
slides/k8s/labs-live.md
Normal file
42
slides/k8s/labs-live.md
Normal file
@@ -0,0 +1,42 @@
|
||||
## Where are we going to run our containers?
|
||||
|
||||
---
|
||||
|
||||
class: pic
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## If you're attending a live class
|
||||
|
||||
- Each person gets a private lab environment
|
||||
|
||||
(depending on the scenario, this will be one VM, one cluster, multiple clusters...)
|
||||
|
||||
- The instructor will tell you how to connect to your environment
|
||||
|
||||
- Your lab environments will be available for the duration of the workshop
|
||||
|
||||
(check with your instructor to know exactly when they'll be shutdown)
|
||||
|
||||
---
|
||||
|
||||
## Why don't we run containers locally?
|
||||
|
||||
- Setting up a local Kubernetes cluster can take time
|
||||
|
||||
(and the procedure can differ from one system to another)
|
||||
|
||||
- On some systems, it might be impossible
|
||||
|
||||
(due to restrictive IT policies, lack of hardware support...)
|
||||
|
||||
- Some labs require a "real" cluster
|
||||
|
||||
(e.g. multiple nodes to demonstrate failover, placement policies...)
|
||||
|
||||
- For on-site classes, it can stress the local network
|
||||
|
||||
*"The whole team downloaded all these container images from the WiFi!
|
||||
<br/>... and it went great!"* (Literally no-one ever)
|
||||
@@ -1,13 +1,17 @@
|
||||
# Pre-requirements
|
||||
## Pre-requirements
|
||||
|
||||
- Kubernetes concepts
|
||||
- Familiarity with the UNIX command-line
|
||||
|
||||
(pods, deployments, services, labels, selectors)
|
||||
(navigating directories, editing files, using `kubectl`)
|
||||
|
||||
- Hands-on experience working with containers
|
||||
|
||||
(building images, running them; doesn't matter how exactly)
|
||||
|
||||
- Familiarity with the UNIX command-line
|
||||
- Kubernetes concepts
|
||||
|
||||
(navigating directories, editing files, using `kubectl`)
|
||||
(pods, deployments, services, labels, selectors)
|
||||
|
||||
- Ideally, you already have access to a Kubernetes cluster
|
||||
|
||||
(even if it's just a local one with KinD, minikube, etc.)
|
||||
17
slides/k8s/prereqs-basic.md
Normal file
17
slides/k8s/prereqs-basic.md
Normal file
@@ -0,0 +1,17 @@
|
||||
## Pre-requirements
|
||||
|
||||
- Be comfortable with the UNIX command line
|
||||
|
||||
- navigating directories
|
||||
|
||||
- editing files
|
||||
|
||||
- a little bit of bash-fu (environment variables, loops)
|
||||
|
||||
- Hands-on experience working with containers
|
||||
|
||||
- building images, running them; doesn't matter how exactly
|
||||
|
||||
- if you know `docker run`, `docker build`, `docker ps`, you're good to go!
|
||||
|
||||
- It's totally OK if you are not a Docker expert!
|
||||
@@ -19,16 +19,18 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-advanced.md
|
||||
- shared/handson.md
|
||||
- k8s/labs-live.md
|
||||
- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
-
|
||||
- k8s/prereqs-advanced.md
|
||||
- shared/handson.md
|
||||
- k8s/architecture.md
|
||||
#- k8s/internal-apis.md
|
||||
- k8s/deploymentslideshow.md
|
||||
|
||||
@@ -19,17 +19,19 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-advanced.md
|
||||
- shared/handson.md
|
||||
- k8s/labs-live.md
|
||||
- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
# DAY 1
|
||||
- - k8s/prereqs-advanced.md
|
||||
- shared/handson.md
|
||||
- k8s/architecture.md
|
||||
- - k8s/architecture.md
|
||||
- k8s/internal-apis.md
|
||||
- k8s/deploymentslideshow.md
|
||||
- k8s/dmuc-easy.md
|
||||
|
||||
@@ -17,16 +17,18 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
#- shared/chat-room-im.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-advanced.md
|
||||
- shared/handson.md
|
||||
- k8s/labs-live.md
|
||||
- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
- #1
|
||||
- k8s/prereqs-advanced.md
|
||||
- shared/handson.md
|
||||
- k8s/architecture.md
|
||||
- k8s/internal-apis.md
|
||||
- k8s/deploymentslideshow.md
|
||||
|
||||
@@ -18,19 +18,18 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-basic.md
|
||||
- shared/handson.md
|
||||
- k8s/labs-live.md
|
||||
- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
-
|
||||
- shared/prereqs.md
|
||||
- shared/handson.md
|
||||
#- shared/webssh.md
|
||||
- shared/connecting.md
|
||||
#- k8s/versions-k8s.md
|
||||
- shared/sampleapp.md
|
||||
#- shared/composescale.md
|
||||
#- shared/hastyconclusions.md
|
||||
|
||||
@@ -17,22 +17,19 @@ exclude:
|
||||
|
||||
content:
|
||||
- shared/title.md
|
||||
#- logistics.md
|
||||
# Bridget-specific; others use logistics.md
|
||||
- logistics-bridget.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
- logistics.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-basic.md
|
||||
- shared/handson.md
|
||||
- k8s/labs-live.md
|
||||
- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
- - shared/prereqs.md
|
||||
- shared/handson.md
|
||||
#- shared/webssh.md
|
||||
- shared/connecting.md
|
||||
- k8s/versions-k8s.md
|
||||
- shared/sampleapp.md
|
||||
- - shared/sampleapp.md
|
||||
# Bridget doesn't go into as much depth with compose
|
||||
#- shared/composescale.md
|
||||
#- shared/hastyconclusions.md
|
||||
|
||||
@@ -18,19 +18,18 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
#- logistics.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
#- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-basic.md
|
||||
- shared/handson.md
|
||||
#- k8s/labs-live.md
|
||||
#- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
-
|
||||
- shared/prereqs.md
|
||||
- shared/handson.md
|
||||
#- shared/webssh.md
|
||||
- shared/connecting.md
|
||||
- k8s/versions-k8s.md
|
||||
- shared/sampleapp.md
|
||||
#- shared/composescale.md
|
||||
#- shared/hastyconclusions.md
|
||||
|
||||
@@ -18,19 +18,18 @@ exclude:
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- k8s/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/about-slides.md
|
||||
- k8s/prereqs-basic.md
|
||||
- shared/handson.md
|
||||
- k8s/labs-live.md
|
||||
- shared/connecting.md
|
||||
- k8s/labs-async.md
|
||||
- shared/toc.md
|
||||
-
|
||||
- shared/prereqs.md
|
||||
- shared/handson.md
|
||||
#- shared/webssh.md
|
||||
- shared/connecting.md
|
||||
#- k8s/versions-k8s.md
|
||||
- shared/sampleapp.md
|
||||
#- shared/composescale.md
|
||||
#- shared/hastyconclusions.md
|
||||
|
||||
@@ -23,6 +23,9 @@ content:
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- k8s/prereqs-advanced.md
|
||||
# Note: if we work on this later, we should refactor it
|
||||
# to follow the same pattern as the other classes
|
||||
# (i.e. use the k8s/labs-*.md files)
|
||||
- k8s/handson-mlops.md
|
||||
- shared/connecting.md
|
||||
- k8s/mlops-headsup.md
|
||||
|
||||
@@ -60,6 +60,8 @@
|
||||
|
||||
## These slides are constantly updated
|
||||
|
||||
- They are maintained by [Jérôme Petazzoni](https://hachyderm.io/@jpetazzo/) and [multiple contributors](https://@@GITREPO@@/graphs/contributors)
|
||||
|
||||
- Feel free to check the GitHub repository for updates:
|
||||
|
||||
https://@@GITREPO@@
|
||||
@@ -89,3 +91,27 @@ class: extra-details
|
||||
- you want only the most essential information
|
||||
|
||||
- You can review these slides another time if you want, they'll be waiting for you ☺
|
||||
|
||||
---
|
||||
|
||||
## Slides ≠ documentation
|
||||
|
||||
- We tried to include a lot of information in these slides
|
||||
|
||||
- But they don't replace or compete with the documentation!
|
||||
|
||||
- Treat these slides as yet another pillar to support your learning experience
|
||||
|
||||
- Don't hesitate to frequently read the documentations
|
||||
|
||||
([Docker documentation][docker-docs], [Kubernetes documentation][k8s-docs])
|
||||
|
||||
- And online communities
|
||||
|
||||
(e.g.: [Docker forums][docker-forums], [Docker on StackOverflow][docker-so], [Kubernetes on StackOverflow][k8s-so])
|
||||
|
||||
[docker-docs]: https://docs.docker.com/
|
||||
[k8s-docs]: https://kubernetes.io/docs/
|
||||
[docker-forums]: https://forums.docker.com/
|
||||
[docker-so]: http://stackoverflow.com/questions/tagged/docker
|
||||
[k8s-so]: http://stackoverflow.com/questions/tagged/kubernetes
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
class: in-person
|
||||
## Connecting to our lab environment
|
||||
|
||||
## Testing the connection to our lab environment
|
||||
- We need an SSH client
|
||||
|
||||
- On Linux, OS X, FreeBSD... you are probably all set; just use `ssh`
|
||||
|
||||
- On Windows, get one of these:
|
||||
|
||||
- [putty](https://putty.software/)
|
||||
- Microsoft [Win32 OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH)
|
||||
- [Git BASH](https://git-for-windows.github.io/)
|
||||
- [MobaXterm](http://mobaxterm.mobatek.net/)
|
||||
|
||||
- On Android, [JuiceSSH](https://juicessh.com/)
|
||||
([Play Store](https://play.google.com/store/apps/details?id=com.sonelli.juicessh))
|
||||
works pretty well
|
||||
|
||||
---
|
||||
|
||||
## Testing the connection
|
||||
|
||||
- Your instructor will tell you where to find the IP address, login, and password
|
||||
|
||||
.lab[
|
||||
|
||||
@@ -31,17 +50,69 @@ You should see a prompt looking like this:
|
||||
[A.B.C.D] (...) user@machine ~
|
||||
$
|
||||
```
|
||||
If anything goes wrong — ask for help!
|
||||
|
||||
---
|
||||
|
||||
class: in-person
|
||||
## Checking the lab environment
|
||||
|
||||
In Docker classes, run `docker version`.
|
||||
|
||||
The output should look like this:
|
||||
|
||||
.small[
|
||||
```bash
|
||||
Client:
|
||||
Version: 29.1.1
|
||||
API version: 1.52
|
||||
Go version: go1.25.4 X:nodwarf5
|
||||
Git commit: 0aedba58c2
|
||||
Built: Fri Nov 28 14:28:26 2025
|
||||
OS/Arch: linux/amd64
|
||||
Context: default
|
||||
|
||||
Server:
|
||||
Engine:
|
||||
Version: 29.1.1
|
||||
API version: 1.52 (minimum version 1.44)
|
||||
Go version: go1.25.4 X:nodwarf5
|
||||
Git commit: 9a84135d52
|
||||
Built: Fri Nov 28 14:28:26 2025
|
||||
OS/Arch: linux/amd64
|
||||
Experimental: false
|
||||
...
|
||||
```
|
||||
]
|
||||
|
||||
---
|
||||
|
||||
## Checking the lab environment
|
||||
|
||||
In Kubernetes classes, run `kubectl get nodes`.
|
||||
|
||||
The output should look like this:
|
||||
|
||||
```bash
|
||||
$ k get nodes
|
||||
NAME STATUS ROLES AGE VERSION
|
||||
node1 Ready control-plane 7d6h v1.34.0
|
||||
node2 Ready <none> 7d6h v1.34.0
|
||||
node3 Ready <none> 7d6h v1.34.0
|
||||
node4 Ready <none> 7d6h v1.34.0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## If it doesn't work...
|
||||
|
||||
Ask an instructor or assistant to help you!
|
||||
|
||||
---
|
||||
|
||||
## `tailhist`
|
||||
|
||||
- The shell history of the instructor is available online in real time
|
||||
|
||||
- The instructor will provide you a "magic URL"
|
||||
- The instructor will share a special URL with you
|
||||
|
||||
(typically, the instructor's lab address on port 1088 or 30088)
|
||||
|
||||
@@ -57,82 +128,6 @@ class: in-person
|
||||
|
||||
---
|
||||
|
||||
## Doing or re-doing the workshop on your own?
|
||||
|
||||
- Use something like
|
||||
[Play-With-Docker](https://labs.play-with-docker.com/) or
|
||||
[Play-With-Kubernetes](https://training.play-with-kubernetes.com/)
|
||||
|
||||
Zero setup effort; but environment are short-lived and
|
||||
might have limited resources
|
||||
|
||||
- Create your own cluster (local or cloud VMs)
|
||||
|
||||
Small setup effort; small cost; flexible environments
|
||||
|
||||
- Create a bunch of clusters for you and your friends
|
||||
([instructions](https://@@GITREPO@@/tree/main/prepare-labs))
|
||||
|
||||
Bigger setup effort; ideal for group training
|
||||
|
||||
---
|
||||
|
||||
## For a consistent Kubernetes experience ...
|
||||
|
||||
- If you are using your own Kubernetes cluster, you can use [jpetazzo/shpod](https://github.com/jpetazzo/shpod)
|
||||
|
||||
- `shpod` provides a shell running in a pod on your own cluster
|
||||
|
||||
- It comes with many tools pre-installed (helm, stern...)
|
||||
|
||||
- These tools are used in many demos and exercises in these slides
|
||||
|
||||
- `shpod` also gives you completion and a fancy prompt
|
||||
|
||||
- It can also be used as an SSH server if needed
|
||||
|
||||
---
|
||||
|
||||
class: self-paced
|
||||
|
||||
## Get your own Docker nodes
|
||||
|
||||
- If you already have some Docker nodes: great!
|
||||
|
||||
- If not: let's get some thanks to Play-With-Docker
|
||||
|
||||
.lab[
|
||||
|
||||
- Go to https://labs.play-with-docker.com/
|
||||
|
||||
- Log in
|
||||
|
||||
- Create your first node
|
||||
|
||||
<!-- ```open https://labs.play-with-docker.com/``` -->
|
||||
|
||||
]
|
||||
|
||||
You will need a Docker ID to use Play-With-Docker.
|
||||
|
||||
(Creating a Docker ID is free.)
|
||||
|
||||
---
|
||||
|
||||
## We don't need to connect to ALL the nodes
|
||||
|
||||
- If your cluster has multiple nodes (e.g. `node1`, `node2`, ...):
|
||||
|
||||
unless instructed, **all commands must be run from the first node**
|
||||
|
||||
- We don't need to check out/copy code or manifests on other nodes
|
||||
|
||||
- During normal operations, we do not need access to the other nodes
|
||||
|
||||
(but we could log into these nodes to troubleshoot or examine stuff)
|
||||
|
||||
---
|
||||
|
||||
## Terminals
|
||||
|
||||
Once in a while, the instructions will say:
|
||||
|
||||
@@ -12,17 +12,33 @@ Misattributed to Benjamin Franklin
|
||||
|
||||
---
|
||||
|
||||
## Hands-on sections
|
||||
## Hands-on, you shall practice
|
||||
|
||||
- There will be *a lot* of examples and demos
|
||||
- Nobody ever became a Jedi by spending their lives reading Wookiepedia
|
||||
|
||||
- We are going to build, ship, and run containers (and sometimes, clusters!)
|
||||
- Someone can:
|
||||
|
||||
- If you want, you can run all the examples and demos in your environment
|
||||
- read all the docs
|
||||
|
||||
(but you don't have to; it's up to you!)
|
||||
- watch all the videos
|
||||
|
||||
- All hands-on sections are clearly identified, like the gray rectangle below
|
||||
- attend all the workshops and live classes
|
||||
|
||||
- ...This won't be enough to become an expert!
|
||||
|
||||
- We think one needs to *put the concepts in practice* to truly memorize them
|
||||
|
||||
- But, how?
|
||||
|
||||
---
|
||||
|
||||
## Hands-on labs
|
||||
|
||||
- These slides include *tons* of demos, examples, and exercises
|
||||
|
||||
- Don't follow along passively; try to reproduce the demos and examples!
|
||||
|
||||
- Each time you see a gray rectangle like this, it indicates a demo or example
|
||||
|
||||
.lab[
|
||||
|
||||
@@ -33,134 +49,6 @@ Misattributed to Benjamin Franklin
|
||||
|
||||
]
|
||||
|
||||
---
|
||||
- Don't hesitate to try them in your environment
|
||||
|
||||
class: in-person
|
||||
|
||||
## Where are we going to run our containers?
|
||||
|
||||
---
|
||||
|
||||
class: in-person, pic
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## If you're attending a live training or workshop
|
||||
|
||||
- Each person gets a private lab environment
|
||||
|
||||
(depending on the scenario, this will be one VM, one cluster, multiple clusters...)
|
||||
|
||||
- The instructor will tell you how to connect to your environment
|
||||
|
||||
- Your lab environments will be available for the duration of the workshop
|
||||
|
||||
(check with your instructor to know exactly when they'll be shutdown)
|
||||
|
||||
---
|
||||
|
||||
## Running your own lab environments
|
||||
|
||||
- If you are following a self-paced course...
|
||||
|
||||
- Or watching a replay of a recorded course...
|
||||
|
||||
- ...You will need to set up a local environment for the labs
|
||||
|
||||
- If you want to deliver your own training or workshop:
|
||||
|
||||
- deployment scripts are available in the [prepare-labs] directory
|
||||
|
||||
- you can use them to automatically deploy many lab environments
|
||||
|
||||
- they support many different infrastructure providers
|
||||
|
||||
[prepare-labs]: https://github.com/jpetazzo/container.training/tree/main/prepare-labs
|
||||
|
||||
---
|
||||
|
||||
class: in-person
|
||||
|
||||
## Why don't we run containers locally?
|
||||
|
||||
- Installing this stuff can be hard on some machines
|
||||
|
||||
(32 bits CPU or OS... Laptops without administrator access... etc.)
|
||||
|
||||
- *"The whole team downloaded all these container images from the WiFi!
|
||||
<br/>... and it went great!"* (Literally no-one ever)
|
||||
|
||||
- All you need is a computer (or even a phone or tablet!), with:
|
||||
|
||||
- an Internet connection
|
||||
|
||||
- a web browser
|
||||
|
||||
- an SSH client
|
||||
|
||||
---
|
||||
|
||||
class: in-person
|
||||
|
||||
## SSH clients
|
||||
|
||||
- On Linux, OS X, FreeBSD... you are probably all set
|
||||
|
||||
- On Windows, get one of these:
|
||||
|
||||
- [putty](https://putty.software/)
|
||||
- Microsoft [Win32 OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH)
|
||||
- [Git BASH](https://git-for-windows.github.io/)
|
||||
- [MobaXterm](http://mobaxterm.mobatek.net/)
|
||||
|
||||
- On Android, [JuiceSSH](https://juicessh.com/)
|
||||
([Play Store](https://play.google.com/store/apps/details?id=com.sonelli.juicessh))
|
||||
works pretty well
|
||||
|
||||
- Nice-to-have: [Mosh](https://mosh.org/) instead of SSH, if your Internet connection tends to lose packets
|
||||
|
||||
---
|
||||
|
||||
class: in-person, extra-details
|
||||
|
||||
## What is this Mosh thing?
|
||||
|
||||
*You don't have to use Mosh or even know about it to follow along.
|
||||
<br/>
|
||||
We're just telling you about it because some of us think it's cool!*
|
||||
|
||||
- Mosh is "the mobile shell"
|
||||
|
||||
- It is essentially SSH over UDP, with roaming features
|
||||
|
||||
- It retransmits packets quickly, so it works great even on lossy connections
|
||||
|
||||
(Like hotel or conference WiFi)
|
||||
|
||||
- It has intelligent local echo, so it works great even in high-latency connections
|
||||
|
||||
(Like hotel or conference WiFi)
|
||||
|
||||
- It supports transparent roaming when your client IP address changes
|
||||
|
||||
(Like when you hop from hotel to conference WiFi)
|
||||
|
||||
---
|
||||
|
||||
class: in-person, extra-details
|
||||
|
||||
## Using Mosh
|
||||
|
||||
- To install it: `(apt|yum|brew) install mosh`
|
||||
|
||||
- It has been pre-installed on the VMs that we are using
|
||||
|
||||
- To connect to a remote machine: `mosh user@host`
|
||||
|
||||
(It is going to establish an SSH connection, then hand off to UDP)
|
||||
|
||||
- It requires UDP ports to be open
|
||||
|
||||
(By default, it uses a UDP port between 60000 and 61000)
|
||||
- Don't hesitate to improvise, deviate from the script... And see what happens!
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# Pre-requirements
|
||||
|
||||
- Be comfortable with the UNIX command line
|
||||
|
||||
- navigating directories
|
||||
|
||||
- editing files
|
||||
|
||||
- a little bit of bash-fu (environment variables, loops)
|
||||
|
||||
- Some Docker knowledge
|
||||
|
||||
- `docker run`, `docker ps`, `docker build`
|
||||
|
||||
- ideally, you know how to write a Dockerfile and build it
|
||||
<br/>
|
||||
(even if it's a `FROM` line and a couple of `RUN` commands)
|
||||
|
||||
- It's totally OK if you are not a Docker expert!
|
||||
@@ -1,72 +0,0 @@
|
||||
title: |
|
||||
Container Orchestration
|
||||
with Docker and Swarm
|
||||
|
||||
chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)"
|
||||
#chat: "[Gitter](https://gitter.im/jpetazzo/workshop-yyyymmdd-city)"
|
||||
|
||||
gitrepo: github.com/jpetazzo/container.training
|
||||
|
||||
slides: https://container.training/
|
||||
|
||||
#slidenumberprefix: "#SomeHashTag — "
|
||||
|
||||
exclude:
|
||||
- self-paced
|
||||
- snap
|
||||
- btp-auto
|
||||
- benchmarking
|
||||
- elk-manual
|
||||
- prom-manual
|
||||
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- swarm/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/toc.md
|
||||
- - shared/prereqs.md
|
||||
- shared/handson.md
|
||||
- shared/connecting.md
|
||||
- swarm/versions.md
|
||||
- shared/sampleapp.md
|
||||
- shared/composescale.md
|
||||
- shared/hastyconclusions.md
|
||||
- shared/composedown.md
|
||||
- swarm/swarmkit.md
|
||||
- shared/declarative.md
|
||||
- swarm/swarmmode.md
|
||||
- swarm/creatingswarm.md
|
||||
#- swarm/machine.md
|
||||
- swarm/morenodes.md
|
||||
- - swarm/firstservice.md
|
||||
- swarm/ourapponswarm.md
|
||||
- swarm/hostingregistry.md
|
||||
- swarm/testingregistry.md
|
||||
- swarm/btp-manual.md
|
||||
- swarm/swarmready.md
|
||||
- swarm/stacks.md
|
||||
- swarm/cicd.md
|
||||
- swarm/updatingservices.md
|
||||
- swarm/rollingupdates.md
|
||||
- swarm/healthchecks.md
|
||||
- - swarm/operatingswarm.md
|
||||
- swarm/netshoot.md
|
||||
- swarm/ipsec.md
|
||||
- swarm/swarmtools.md
|
||||
- swarm/security.md
|
||||
- swarm/secrets.md
|
||||
- swarm/encryptionatrest.md
|
||||
- swarm/leastprivilege.md
|
||||
- swarm/apiscope.md
|
||||
- - swarm/logging.md
|
||||
- swarm/metrics.md
|
||||
- swarm/gui.md
|
||||
- swarm/stateful.md
|
||||
- swarm/extratips.md
|
||||
- shared/thankyou.md
|
||||
- swarm/links.md
|
||||
@@ -1,71 +0,0 @@
|
||||
title: |
|
||||
Container Orchestration
|
||||
with Docker and Swarm
|
||||
|
||||
chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)"
|
||||
#chat: "[Gitter](https://gitter.im/jpetazzo/workshop-yyyymmdd-city)"
|
||||
|
||||
gitrepo: github.com/jpetazzo/container.training
|
||||
|
||||
slides: https://container.training/
|
||||
|
||||
#slidenumberprefix: "#SomeHashTag — "
|
||||
|
||||
exclude:
|
||||
- self-paced
|
||||
- snap
|
||||
- btp-manual
|
||||
- benchmarking
|
||||
- elk-manual
|
||||
- prom-manual
|
||||
|
||||
content:
|
||||
- shared/title.md
|
||||
- logistics.md
|
||||
- swarm/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/chat-room-im.md
|
||||
#- shared/chat-room-slack.md
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/toc.md
|
||||
- - shared/prereqs.md
|
||||
- shared/handson.md
|
||||
- shared/connecting.md
|
||||
- swarm/versions.md
|
||||
- shared/sampleapp.md
|
||||
- shared/composescale.md
|
||||
- shared/hastyconclusions.md
|
||||
- shared/composedown.md
|
||||
- swarm/swarmkit.md
|
||||
- shared/declarative.md
|
||||
- swarm/swarmmode.md
|
||||
- swarm/creatingswarm.md
|
||||
#- swarm/machine.md
|
||||
- swarm/morenodes.md
|
||||
- - swarm/firstservice.md
|
||||
- swarm/ourapponswarm.md
|
||||
#- swarm/hostingregistry.md
|
||||
#- swarm/testingregistry.md
|
||||
#- swarm/btp-manual.md
|
||||
#- swarm/swarmready.md
|
||||
- swarm/stacks.md
|
||||
- swarm/cicd.md
|
||||
- swarm/updatingservices.md
|
||||
#- swarm/rollingupdates.md
|
||||
#- swarm/healthchecks.md
|
||||
- - swarm/operatingswarm.md
|
||||
#- swarm/netshoot.md
|
||||
#- swarm/ipsec.md
|
||||
#- swarm/swarmtools.md
|
||||
- swarm/security.md
|
||||
#- swarm/secrets.md
|
||||
#- swarm/encryptionatrest.md
|
||||
- swarm/leastprivilege.md
|
||||
- swarm/apiscope.md
|
||||
- swarm/logging.md
|
||||
- swarm/metrics.md
|
||||
#- swarm/stateful.md
|
||||
#- swarm/extratips.md
|
||||
- shared/thankyou.md
|
||||
- swarm/links.md
|
||||
@@ -1,75 +0,0 @@
|
||||
title: |
|
||||
Container Orchestration
|
||||
with Docker and Swarm
|
||||
|
||||
chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)"
|
||||
|
||||
gitrepo: github.com/jpetazzo/container.training
|
||||
|
||||
slides: https://container.training/
|
||||
|
||||
#slidenumberprefix: "#SomeHashTag — "
|
||||
|
||||
exclude:
|
||||
- in-person
|
||||
- btp-auto
|
||||
|
||||
content:
|
||||
- shared/title.md
|
||||
#- shared/logistics.md
|
||||
- swarm/intro.md
|
||||
- shared/about-slides.md
|
||||
- shared/toc.md
|
||||
- - shared/prereqs.md
|
||||
- shared/handson.md
|
||||
- shared/connecting.md
|
||||
- swarm/versions.md
|
||||
- |
|
||||
name: part-1
|
||||
|
||||
class: title, self-paced
|
||||
|
||||
Part 1
|
||||
- shared/sampleapp.md
|
||||
- shared/composescale.md
|
||||
- shared/hastyconclusions.md
|
||||
- shared/composedown.md
|
||||
- swarm/swarmkit.md
|
||||
- shared/declarative.md
|
||||
- swarm/swarmmode.md
|
||||
- swarm/creatingswarm.md
|
||||
#- swarm/machine.md
|
||||
- swarm/morenodes.md
|
||||
- - swarm/firstservice.md
|
||||
- swarm/ourapponswarm.md
|
||||
- swarm/hostingregistry.md
|
||||
- swarm/testingregistry.md
|
||||
- swarm/btp-manual.md
|
||||
- swarm/swarmready.md
|
||||
- swarm/stacks.md
|
||||
- |
|
||||
name: part-2
|
||||
|
||||
class: title, self-paced
|
||||
|
||||
Part 2
|
||||
- - swarm/operatingswarm.md
|
||||
#- swarm/netshoot.md
|
||||
#- swarm/swarmnbt.md
|
||||
- swarm/ipsec.md
|
||||
- swarm/updatingservices.md
|
||||
- swarm/rollingupdates.md
|
||||
#- swarm/healthchecks.md
|
||||
- swarm/nodeinfo.md
|
||||
- swarm/swarmtools.md
|
||||
- - swarm/security.md
|
||||
- swarm/secrets.md
|
||||
- swarm/encryptionatrest.md
|
||||
- swarm/leastprivilege.md
|
||||
- swarm/apiscope.md
|
||||
#- swarm/logging.md
|
||||
#- swarm/metrics.md
|
||||
- swarm/stateful.md
|
||||
- swarm/extratips.md
|
||||
- shared/thankyou.md
|
||||
- swarm/links.md
|
||||
@@ -24,9 +24,8 @@ content:
|
||||
#- shared/chat-room-zoom-meeting.md
|
||||
#- shared/chat-room-zoom-webinar.md
|
||||
- shared/toc.md
|
||||
- - shared/prereqs.md
|
||||
- shared/handson.md
|
||||
- shared/connecting.md
|
||||
- - shared/handson.md
|
||||
#- shared/connecting.md
|
||||
- swarm/versions.md
|
||||
- |
|
||||
name: part-1
|
||||
Reference in New Issue
Block a user