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.

Jacob Tomlinson

September 07, 2018
Tweet

More Decks by Jacob Tomlinson

Other Decks in Technology

Transcript

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

    View Slide

  2. hello!
    I am Jacob Tomlinson
    2

    View Slide

  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/

    View Slide

  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

    View Slide

  5. Docker
    “Docker creates simple tooling and a universal packaging approach
    that bundles up all application dependencies inside a container.”

    View Slide

  6. Docker concepts
    We will cover
    ✘ Containers
    ✘ Images
    ✘ Registries
    6
    We won’t cover
    ✘ Services
    ✘ Swarms
    ✘ Stacks

    View Slide

  7. Kubernetes
    “Kubernetes is an open-source system for automating deployment,
    scaling, and management of containerized applications.”

    View Slide

  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

    View Slide

  9. Helm
    “Helm is the best way to find, share, and use software built for
    Kubernetes.”

    View Slide

  10. Helm concepts
    We will cover
    ✘ Charts
    ✘ Templates
    ✘ Values
    ✘ Notes
    ✘ Requirements
    10
    We won’t cover
    ✘ Tiller
    ✘ Helpers
    ✘ Repositories

    View Slide

  11. Walkthrough
    Let’s package and deploy an application from
    start to finish!
    https://github.com/jacobtomlinson/tech-exeter-conference-2018

    View Slide

  12. 12

    View Slide

  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

    View Slide

  14. Building a docker image
    14
    $ docker build -t /:
    Building…
    $ docker push /:
    Uploading to registry…
    $ docker run [args…] /:
    Running container...

    View Slide

  15. Building a kubernetes cluster
    15
    Amazon Web Services
    $ eksctl create cluster --name=
    Creating cluster...
    Google Cloud
    $ gcloud container clusters create
    Creating cluster...
    Microsoft Azure
    $ az acs create --orchestrator-type kubernetes --resource-group --name --generate-ssh-keys
    Creating cluster...

    View Slide

  16. Building the helm chart and
    deploying to kubernetes
    16
    $ helm create
    Creating skeleton chart...
    $
    Configure your chart...
    $ helm install --namespace --name -f
    Deploying to kubernetes...

    View Slide

  17. Updating the application
    17
    $ helm upgrade -f
    Updating your existing chart...

    View Slide

  18. Thanks for listening!
    Any questions?
    @_jacobtomlinson
    [email protected]
    18

    View Slide