diff --git a/slides/assignments/TODO.txt b/slides/assignments/TODO.txt new file mode 100644 index 00000000..e3b4caf8 --- /dev/null +++ b/slides/assignments/TODO.txt @@ -0,0 +1,34 @@ +# Our sample application + +No assignment + +# Kubernetes concepts + +Do we want some kind of multiple-choice quiz? + +# First contact with kubectl + +Start some pre-defined image and check its logs +(Do we want to make a custom "mystery image" that shows a message +and then sleeps forever?) + +Start another one (to make sure they understand that they need +to specify a unique name each time) + +Provide as many ways as you can to figure out on which node +these pods are running (even if you only have one node). + +# Exposing containers + +Start a container running the official tomcat image. +Expose it. +Connect to it. + +# Shipping apps + +(We need a few images for a demo app other than DockerCoins?) + +Start the components of the app. +Expose what needs to be exposed. +Connect to the app and check that it works. + diff --git a/slides/assignments/setup.md b/slides/assignments/setup.md new file mode 100644 index 00000000..828bd2ae --- /dev/null +++ b/slides/assignments/setup.md @@ -0,0 +1,80 @@ +## Get Kubernetes + +- In order to do the other labs and exercises, we need a Kubernetes cluster + +- Here are some *free* options: + + - Docker Desktop + + - Minikube + +- You can also get a managed cluster (but this costs some money) + +--- + +## Recommendation 1: Docker Desktop + +- If you are already using Docker Desktop, use it for Kubernetes + +- If you are running MacOS, [install Docker Desktop](https://docs.docker.com/docker-for-mac/install/) + + - you will need a post-2010 Mac + + - you will need macOS Sierra 10.12 or later + +- If you are running Windows 10, [install Docker Desktop](https://docs.docker.com/docker-for-windows/install/) + + - you will need Windows 10 64 bits Pro, Enterprise, or Education + + - virtualization needs to be enabled in your BIOS + +- Then [enable Kubernetes](https://blog.docker.com/2018/07/kubernetes-is-now-available-in-docker-desktop-stable-channel/) if it's not already on + +--- + +## Recommendation 2: Minikube + +- In some scenarios, you can't use Docker Desktop: + + - if you run Linux + + - if you are running an unsupported version of Windows + +- You might also want to install Minikube for other reasons + + (there are more tutorials and instructions out there for Minikube) + +- Minikube installation is a bit more complex + + (depending on which hypervisor and OS you are using) + +--- + +## Minikube installation details + +- Minikube typically runs in a local virtual machine + +- It supports multiple hypervisors: + + - VirtualBox (Linux, Mac, Windows) + + - HyperV (Windows) + + - HyperKit, VMware (Mac) + + - KVM (Linux) + +- Check the [documentation](https://kubernetes.io/docs/tasks/tools/install-minikube/) for details relevant to your setup + +--- + +## Recommendation 3: hosted cluster + +- You can also get your own hosted cluster + +- This will cost a little bit of money + + (unless you have free hosting credits) + +- Setup will vary depending on the provider, platform, etc. + diff --git a/slides/k8s/buildshiprun-dockerhub.md b/slides/k8s/buildshiprun-dockerhub.md index 1a75774f..3d414c49 100644 --- a/slides/k8s/buildshiprun-dockerhub.md +++ b/slides/k8s/buildshiprun-dockerhub.md @@ -15,26 +15,3 @@ - `dockercoins/webui:v0.1` - `dockercoins/worker:v0.1` - ---- - -## Setting `$REGISTRY` and `$TAG` - -- In the upcoming exercises and labs, we use a couple of environment variables: - - - `$REGISTRY` as a prefix to all image names - - - `$TAG` as the image version tag - -- For example, the worker image is `$REGISTRY/worker:$TAG` - -- If you copy-paste the commands in these exercises: - - **make sure that you set `$REGISTRY` and `$TAG` first!** - -- For example: - ```bash - export REGISTRY=dockercoins TAG=v0.1 - ``` - - (this will expand `$REGISTRY/worker:$TAG` to `dockercoins/worker:v0.1`) diff --git a/slides/k8s/ourapponkube.md b/slides/k8s/ourapponkube.md index 50eed1ea..0a6a9774 100644 --- a/slides/k8s/ourapponkube.md +++ b/slides/k8s/ourapponkube.md @@ -13,7 +13,7 @@ ```bash set -u for SERVICE in hasher rng webui worker; do - kubectl create deployment $SERVICE --image=$REGISTRY/$SERVICE:$TAG + kubectl create deployment $SERVICE --image=dockercoins/$SERVICE:v0.1 done ``` diff --git a/slides/kube.yml b/slides/kube.yml index f4aac475..81ada9a2 100644 --- a/slides/kube.yml +++ b/slides/kube.yml @@ -19,7 +19,7 @@ chapters: - shared/toc.md - # DAY 1 - shared/prereqs.md - - shared/connecting.md + - assignments/setup.md - shared/sampleapp.md - shared/composedown.md - k8s/concepts-k8s.md @@ -36,8 +36,9 @@ chapters: - k8s/buildshiprun-dockerhub.md - k8s/ourapponkube.md - - - k8s/setup-k8s.md - - k8s/dashboard.md + #- k8s/setup-selfhosted.md + #- k8s/setup-k8s.md + #- k8s/dashboard.md #- k8s/kubectlscale.md - k8s/scalingdockercoins.md - shared/hastyconclusions.md @@ -50,9 +51,10 @@ chapters: - k8s/record.md - # DAY 2 - k8s/namespaces.md + - k8s/setup-managed.md - k8s/localkubeconfig.md - k8s/accessinternal.md - - k8s/kubectlproxy.md + #- k8s/kubectlproxy.md - k8s/ingress.md - - k8s/logs-centralized.md diff --git a/slides/shared/prereqs.md b/slides/shared/prereqs.md index 4913a5c2..3ab09fd9 100644 --- a/slides/shared/prereqs.md +++ b/slides/shared/prereqs.md @@ -48,10 +48,5 @@ Misattributed to Benjamin Franklin - This is the stuff you're supposed to do! -- The following command should work and show us at least one node: - ```bash - kubectl get nodes - ``` - ]