diff --git a/prepare-vms/settings/jerome.yaml b/prepare-vms/settings/jerome.yaml index adf74639..62e8a08f 100644 --- a/prepare-vms/settings/jerome.yaml +++ b/prepare-vms/settings/jerome.yaml @@ -8,7 +8,7 @@ clusterprefix: node cards_template: jerome.html # Use "Letter" in the US, and "A4" everywhere else -paper_size: A4 +paper_size: Letter # Feel free to reduce this if your printer can handle it paper_margin: 0.2in diff --git a/slides/k8s/architecture.md b/slides/k8s/architecture.md index ecd28284..e3bf8c86 100644 --- a/slides/k8s/architecture.md +++ b/slides/k8s/architecture.md @@ -165,6 +165,25 @@ What does that mean? --- +## Let's experiment a bit! + +- For the exercises in this section, connect to the first node of the `test` cluster + +.exercise[ + +- SSH to the first node of the test cluster + +- Check that the cluster is operational: + ```bash + kubectl get nodes + ``` + +- All nodes should be `Ready` + +] + +--- + ## Create - Let's create a simple object @@ -195,7 +214,7 @@ This is equivalent to `kubectl create namespace hello`. - Read back our object: ```bash - kuectl get namespace hello -o yaml + kubectl get namespace hello -o yaml ``` ] @@ -288,7 +307,7 @@ class: extra-details - In the other, update our namespace: ```bash - kubectl label namespaces color=purple + kubectl label namespaces hello color=purple ``` ] diff --git a/slides/k8s/cluster-upgrade.md b/slides/k8s/cluster-upgrade.md index a599f58d..57bce466 100644 --- a/slides/k8s/cluster-upgrade.md +++ b/slides/k8s/cluster-upgrade.md @@ -18,6 +18,8 @@ .exercise[ +- Log into node `test1` + - Check the version of kubectl and of the API server: ```bash kubectl version diff --git a/slides/k8s/cni.md b/slides/k8s/cni.md index e4749234..306c4302 100644 --- a/slides/k8s/cni.md +++ b/slides/k8s/cni.md @@ -321,7 +321,7 @@ Note: the DaemonSet won't create any pods (yet) since there are no nodes (yet). - Copy `kubeconfig` to the other nodes: ```bash for N in 2 3; do - scp ~/kubeconfig kubenet$N: + scp ~/kubeconfig kuberouter$N: done ``` @@ -346,8 +346,8 @@ Note: the DaemonSet won't create any pods (yet) since there are no nodes (yet). - Open more terminals and join the other nodes: ```bash - ssh kubenet2 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni - ssh kubenet3 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni + ssh kuberouter2 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni + ssh kuberouter3 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni ``` ] @@ -650,7 +650,8 @@ For critical services, we might want to precisely control the update process. - We can see informative messages in the output of kube-router: ``` - time="2019-04-07T15:53:56Z" level=info msg="Peer Up" Key=X.X.X.X State=BGP_FSM_OPENCONFIRM Topic=Peer + time="2019-04-07T15:53:56Z" level=info msg="Peer Up" + Key=X.X.X.X State=BGP_FSM_OPENCONFIRM Topic=Peer ``` - We should see the routes of the other clusters show up diff --git a/slides/k8s/concepts-k8s.md b/slides/k8s/concepts-k8s.md index b1ebc6ef..c7aa2f7a 100644 --- a/slides/k8s/concepts-k8s.md +++ b/slides/k8s/concepts-k8s.md @@ -130,6 +130,12 @@ class: pic --- +class: pic + +![One of the best Kubernetes architecture diagrams available](images/k8s-arch4-thanks-luxas.png) + +--- + ## Running the control plane on special nodes - It is common to reserve a dedicated node for the control plane @@ -199,22 +205,16 @@ class: pic --- -class: pic - -![One of the best Kubernetes architecture diagrams available](images/k8s-arch4-thanks-luxas.png) - ---- - ## Credits -- The first diagram is courtesy of Weave Works +- The first diagram is courtesy of Lucas Käldström, in [this presentation](https://speakerdeck.com/luxas/kubeadm-cluster-creation-internals-from-self-hosting-to-upgradability-and-ha) + + - it's one of the best Kubernetes architecture diagrams available! + +- The second diagram is courtesy of Weave Works - a *pod* can have multiple containers working together - IP addresses are associated with *pods*, not with individual containers -- The second diagram is courtesy of Lucas Käldström, in [this presentation](https://speakerdeck.com/luxas/kubeadm-cluster-creation-internals-from-self-hosting-to-upgradability-and-ha) - - - it's one of the best Kubernetes architecture diagrams available! - Both diagrams used with permission. diff --git a/slides/k8s/dmuc.md b/slides/k8s/dmuc.md index b4b2dc46..a00d940c 100644 --- a/slides/k8s/dmuc.md +++ b/slides/k8s/dmuc.md @@ -33,7 +33,7 @@ ## Our environment -- We will use the machine indicated as `dmuc` +- We will use the machine indicated as `dmuc1` (this stands for "Dessine Moi Un Cluster" or "Draw Me A Sheep",
in homage to Saint-Exupery's "The Little Prince") @@ -54,7 +54,7 @@ .exercise[ -- Log into the `dmuc` machine +- Log into the `dmuc1` machine - Get root: ```bash @@ -106,7 +106,7 @@ - Try to start the API server: ```bash kube-apiserver - # It will fail with --etcd-servers must be specified + # It will fail with "--etcd-servers must be specified" ``` ] @@ -535,7 +535,7 @@ clusters: - Start kubelet with that `kubeconfig.kubelet` file: ```bash - kubelet --kubeconfig kubelet.kubeconfig + kubelet --kubeconfig kubeconfig.kubelet ``` ] @@ -559,7 +559,7 @@ Success! Our node should show up. -Its name will be its hostname (it should be `dmuc`). +Its name will be its hostname (it should be `dmuc1`). --- diff --git a/slides/k8s/localkubeconfig.md b/slides/k8s/localkubeconfig.md index 9c9ad553..eaaf9e4e 100644 --- a/slides/k8s/localkubeconfig.md +++ b/slides/k8s/localkubeconfig.md @@ -16,11 +16,11 @@ - Download the `kubectl` binary from one of these links: - [Linux](https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/linux/amd64/kubectl) + [Linux](https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/linux/amd64/kubectl) | - [macOS](https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/darwin/amd64/kubectl) + [macOS](https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/darwin/amd64/kubectl) | - [Windows](https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/windows/amd64/kubectl.exe) + [Windows](https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/windows/amd64/kubectl.exe) - On Linux and macOS, make the binary executable with `chmod +x kubectl` diff --git a/slides/k8s/versions-k8s.md b/slides/k8s/versions-k8s.md index 1115b043..e093d20a 100644 --- a/slides/k8s/versions-k8s.md +++ b/slides/k8s/versions-k8s.md @@ -1,7 +1,7 @@ ## Versions installed -- Kubernetes 1.14.0 -- Docker Engine 18.09.3 +- Kubernetes 1.14.1 +- Docker Engine 18.09.5 - Docker Compose 1.21.1