Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Containers and orchestration 101 - Docker, Kubernetes and Helm

Containers and orchestration 101 - Docker, Kubernetes and Helm

If you read reports from organizations like the CNCF they will tell you that 90% of people are developing in containers, 69% are running them in production and 77% of those are using Kubernetes to manage them. However those surveys are biased towards a self-selecting group of container converts.

This session will cover container technology from the ground up. You will learn how to package and run applications using Docker, orchestrate those containers on clusters in the cloud using Kubernetes and perform reliable and reproducible deployments with Helm.

It will be aimed at those with all levels of container knowledge so whether you're at the early stages of thinking about using containers, or running them in production don't feel left behind with this fast paced technology.

Ca3d0556227d66b3c15be1eadf69473b?s=128

Jacob Tomlinson

September 07, 2018
Tweet

Transcript

  1. Containers and orchestration 101 Docker, Kubernetes and Helm Jacob Tomlinson

  2. hello! I am Jacob Tomlinson 2

  3. Industry use of container technologies 3 Image courtesy of the

    mid-2018 CNCF Survey. https://www.cncf.io/blog/2018/0 8/29/cncf-survey-use-of-cloud- native-technologies-in-producti on-has-grown-over-200-percen t/
  4. Containers and orchestration 101 Docker Kubernetes Helm 4 A tool

    for building containers A platform to run containers on A deployment toolkit for kubernetes
  5. Docker “Docker creates simple tooling and a universal packaging approach

    that bundles up all application dependencies inside a container.”
  6. Docker concepts We will cover ✘ Containers ✘ Images ✘

    Registries 6 We won’t cover ✘ Services ✘ Swarms ✘ Stacks
  7. Kubernetes “Kubernetes is an open-source system for automating deployment, scaling,

    and management of containerized applications.”
  8. Kubernetes concepts We will cover ✘ Namespaces ✘ Pods ✘

    Deployments ✘ Services ✘ Persistent Volumes ✘ Ingresses ✘ Config Maps 8 We won’t cover ✘ Secrets ✘ Replica Sets ✘ Daemon Sets ✘ Stateful Sets ✘ Jobs ✘ Roles ✘ Role Based Authentication Control
  9. Helm “Helm is the best way to find, share, and

    use software built for Kubernetes.”
  10. Helm concepts We will cover ✘ Charts ✘ Templates ✘

    Values ✘ Notes ✘ Requirements 10 We won’t cover ✘ Tiller ✘ Helpers ✘ Repositories
  11. Walkthrough Let’s package and deploy an application from start to

    finish! https://github.com/jacobtomlinson/tech-exeter-conference-2018
  12. 12

  13. Tap Tap Adventure ✘ Open Source MMO-RPG ✘ Forked from

    Mozilla Browser Quest ✘ Written in NodeJS ✘ Uses websockets ✘ Backed by a MySQL database https://github.com/Tach-Yon/Tap-Tap-Adventur e 13
  14. Building a docker image 14 $ docker build -t <user>/<image>:<tag>

    <path to build files> Building… $ docker push <user>/<image>:<tag> Uploading to registry… $ docker run [args…] <user>/<image>:<tag> Running container...
  15. Building a kubernetes cluster 15 Amazon Web Services $ eksctl

    create cluster --name=<name> Creating cluster... Google Cloud $ gcloud container clusters create <name> Creating cluster... Microsoft Azure $ az acs create --orchestrator-type kubernetes --resource-group <group> --name <name> --generate-ssh-keys Creating cluster...
  16. Building the helm chart and deploying to kubernetes 16 $

    helm create <chart name> Creating skeleton chart... $ <edit the files> Configure your chart... $ helm install --namespace <namespace> --name <name> <chart name> -f <path to config> Deploying to kubernetes...
  17. Updating the application 17 $ helm upgrade <name> <chart name>

    -f <path to config> Updating your existing chart...
  18. Thanks for listening! Any questions? @_jacobtomlinson jacob@tom.linson.uk 18