From 4cc5f563b6713b93ef38dcb23e9a897d61c1d453 Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Mon, 22 Apr 2019 06:31:23 -0500 Subject: [PATCH] Customize for Apr 23rd training --- slides/_redirects | 2 +- slides/k8s/extending-api.md | 2 +- slides/k8s/owners-and-dependents.md | 2 +- slides/k8s/staticpods.md | 2 +- slides/k8s/whatsnext.md | 103 ---------------------------- slides/kube-twodays.yml | 22 +++--- slides/logistics.md | 21 +----- slides/shared/title.md | 12 ++-- 8 files changed, 23 insertions(+), 143 deletions(-) diff --git a/slides/_redirects b/slides/_redirects index 142cc30f..51cb1dd0 100644 --- a/slides/_redirects +++ b/slides/_redirects @@ -1,4 +1,4 @@ # Uncomment and/or edit one of the the following lines if necessary. #/ /kube-halfday.yml.html 200 #/ /kube-fullday.yml.html 200 -#/ /kube-twodays.yml.html 200 +/ /kube-twodays.yml.html 200 diff --git a/slides/k8s/extending-api.md b/slides/k8s/extending-api.md index c9b126cd..8018978d 100644 --- a/slides/k8s/extending-api.md +++ b/slides/k8s/extending-api.md @@ -1,4 +1,4 @@ -# Extending the Kubernetes API +# Extending the Kubernetes API (extra) There are multiple ways to extend the Kubernetes API. diff --git a/slides/k8s/owners-and-dependents.md b/slides/k8s/owners-and-dependents.md index bce4d2f9..c519dc2a 100644 --- a/slides/k8s/owners-and-dependents.md +++ b/slides/k8s/owners-and-dependents.md @@ -1,4 +1,4 @@ -# Owners and dependents +# Owners and dependents (extra) - Some objects are created by other objects diff --git a/slides/k8s/staticpods.md b/slides/k8s/staticpods.md index e979cc2b..067ff561 100644 --- a/slides/k8s/staticpods.md +++ b/slides/k8s/staticpods.md @@ -1,4 +1,4 @@ -# Static pods +# Static pods (extra) - Hosting the Kubernetes control plane on Kubernetes has advantages: diff --git a/slides/k8s/whatsnext.md b/slides/k8s/whatsnext.md index 0b7d39be..2487cf2b 100644 --- a/slides/k8s/whatsnext.md +++ b/slides/k8s/whatsnext.md @@ -57,38 +57,6 @@ And *then* it is time to look at orchestration! --- -## Namespaces - -- Namespaces let you run multiple identical stacks side by side - -- Two namespaces (e.g. `blue` and `green`) can each have their own `redis` service - -- Each of the two `redis` services has its own `ClusterIP` - -- CoreDNS creates two entries, mapping to these two `ClusterIP` addresses: - - `redis.blue.svc.cluster.local` and `redis.green.svc.cluster.local` - -- Pods in the `blue` namespace get a *search suffix* of `blue.svc.cluster.local` - -- As a result, resolving `redis` from a pod in the `blue` namespace yields the "local" `redis` - -.warning[This does not provide *isolation*! That would be the job of network policies.] - ---- - -## Relevant sections - -- [Namespaces](kube-selfpaced.yml.html#toc-namespaces) - -- [Network Policies](kube-selfpaced.yml.html#toc-network-policies) - -- [Role-Based Access Control](kube-selfpaced.yml.html#toc-authentication-and-authorization) - - (covers permissions model, user and service accounts management ...) - ---- - ## Stateful services (databases etc.) - As a first step, it is wiser to keep stateful services *outside* of the cluster @@ -134,77 +102,6 @@ And *then* it is time to look at orchestration! --- -## HTTP traffic handling - -- *Services* are layer 4 constructs - -- HTTP is a layer 7 protocol - -- It is handled by *ingresses* (a different resource kind) - -- *Ingresses* allow: - - - virtual host routing - - session stickiness - - URI mapping - - and much more! - -- [This section](kube-selfpaced.yml.html#toc-exposing-http-services-with-ingress-resources) shows how to expose multiple HTTP apps using [Træfik](https://docs.traefik.io/user-guide/kubernetes/) - ---- - -## Logging - -- Logging is delegated to the container engine - -- Logs are exposed through the API - -- Logs are also accessible through local files (`/var/log/containers`) - -- Log shipping to a central platform is usually done through these files - - (e.g. with an agent bind-mounting the log directory) - -- [This section](kube-selfpaced.yml.html#toc-centralized-logging) shows how to do that with [Fluentd](https://docs.fluentd.org/v0.12/articles/kubernetes-fluentd) and the EFK stack - ---- - -## Metrics - -- The kubelet embeds [cAdvisor](https://github.com/google/cadvisor), which exposes container metrics - - (cAdvisor might be separated in the future for more flexibility) - -- It is a good idea to start with [Prometheus](https://prometheus.io/) - - (even if you end up using something else) - -- Starting from Kubernetes 1.8, we can use the [Metrics API](https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/) - -- [Heapster](https://github.com/kubernetes/heapster) was a popular add-on - - (but is being [deprecated](https://github.com/kubernetes/heapster/blob/master/docs/deprecation.md) starting with Kubernetes 1.11) - ---- - -## Managing the configuration of our applications - -- Two constructs are particularly useful: secrets and config maps - -- They allow to expose arbitrary information to our containers - -- **Avoid** storing configuration in container images - - (There are some exceptions to that rule, but it's generally a Bad Idea) - -- **Never** store sensitive information in container images - - (It's the container equivalent of the password on a post-it note on your screen) - -- [This section](kube-selfpaced.yml.html#toc-managing-configuration) shows how to manage app config with config maps (among others) - ---- - ## Managing stack deployments - The best deployment tool will vary, depending on: diff --git a/slides/kube-twodays.yml b/slides/kube-twodays.yml index 6ae80ec0..3efe255e 100644 --- a/slides/kube-twodays.yml +++ b/slides/kube-twodays.yml @@ -1,14 +1,14 @@ title: | - Deploying and Scaling Microservices - with Kubernetes + Déployer ses applications + avec Kubernetes #chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)" -#chat: "[Gitter](https://gitter.im/jpetazzo/workshop-yyyymmdd-city)" -chat: "In person!" +chat: "[Gitter](https://gitter.im/enix/formation-kubernetes-20190423)" +#chat: "In person!" gitrepo: github.com/jpetazzo/container.training -slides: http://container.training/ +slides: http://kube-2019-04.container.training/ exclude: - self-paced @@ -54,18 +54,18 @@ chapters: - k8s/kustomize.md - k8s/namespaces.md - k8s/netpol.md - - k8s/authn-authz.md -- - k8s/ingress.md +- - k8s/authn-authz.md + - k8s/ingress.md #- k8s/gitworkflows.md - - k8s/prometheus.md -- - k8s/volumes.md +- - k8s/prometheus.md + - k8s/volumes.md #- k8s/build-with-docker.md #- k8s/build-with-kaniko.md - k8s/configuration.md - #- k8s/owners-and-dependents.md - - k8s/extending-api.md - - k8s/statefulsets.md - k8s/portworx.md +- - k8s/extending-api.md + - k8s/owners-and-dependents.md - k8s/staticpods.md - - k8s/whatsnext.md - k8s/links.md diff --git a/slides/logistics.md b/slides/logistics.md index 33388a06..bdfc52f5 100644 --- a/slides/logistics.md +++ b/slides/logistics.md @@ -1,32 +1,15 @@ ## Intros -- This slide should be customized by the tutorial instructor(s). - Hello! We are: - - .emoji[👩🏻‍🏫] Ann O'Nymous ([@...](https://twitter.com/...), Megacorp Inc) - - - .emoji[👨🏾‍🎓] Stu Dent ([@...](https://twitter.com/...), University of Wakanda) - - - -- The workshop will run from ... - -- There will be a lunch break at ... - - (And coffee breaks!) +- There will be a lunch break and coffee breaks - Feel free to interrupt for questions at any time diff --git a/slides/shared/title.md b/slides/shared/title.md index 4ab52435..1446fe32 100644 --- a/slides/shared/title.md +++ b/slides/shared/title.md @@ -11,11 +11,11 @@ class: title, in-person @@TITLE@@

.footnote[ -**Be kind to the WiFi!**
- -*Don't use your hotspot.*
-*Don't stream videos or download big files during the workshop[.](https://www.youtube.com/watch?v=h16zyxiwDLY)*
-*Thank you!* +WiFi : 123_SEBASTOPOL +
+Mot de passe : Sebastopol02 -**Slides: @@SLIDES@@** +**Slides +[:](https://www.youtube.com/watch?v=h16zyxiwDLY) +@@SLIDES@@** ]