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/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 01eb1fa4..d8578ab1 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/jpetazzo/training-20190311-dijon)" +#chat: "In person!" gitrepo: github.com/jpetazzo/container.training -slides: http://container.training/ +slides: http://kube-2019-03.container.training/ exclude: - self-paced @@ -48,16 +48,16 @@ chapters: - k8s/netpol.md - k8s/authn-authz.md - - k8s/ingress.md - - k8s/gitworkflows.md +# - k8s/gitworkflows.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/statefulsets.md +#- - k8s/owners-and-dependents.md +- - k8s/statefulsets.md - k8s/portworx.md - - k8s/staticpods.md +# - k8s/staticpods.md - - k8s/whatsnext.md - k8s/links.md - shared/thankyou.md diff --git a/slides/logistics.md b/slides/logistics.md index 33388a06..0ada6686 100644 --- a/slides/logistics.md +++ b/slides/logistics.md @@ -1,30 +1,14 @@ ## 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 ... +- There will be a lunch break (And coffee breaks!)