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

BeerCityCode Containers and Orchestration

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

BeerCityCode Containers and Orchestration

Avatar for Thomas Wodarek

Thomas Wodarek

June 22, 2018

More Decks by Thomas Wodarek

Other Decks in Technology

Transcript

  1. Outline • Who am I? • Who are you? •

    Docker • Lunch • Kubernetes Slides: https://go.wodarek.com/bcc-slides Repo: https://go.wodarek.com/bcc-repo
  2. Who are you? SWE? Ops? DevOps? SysAdmin? Manager? Other? FTE?

    Contractor? Consultant? Freelance? Windows? Linux? Mac? Comfortable with the command-line? Ever used Docker before? Kubernetes? Containers at all? Ever in anger? Ever at least heard of Docker or Kubernetes before?
  3. Ok, what’s a container? A hermetically sealed way of shipping

    a machine/set up Acts kinda like a VM, but not really For the Linux folks: it’s a chroot with magic around it
  4. Containers should be immutable & ephemeral Minimize the number of

    layers / Consolidate instructions Avoid installing unnecessary packages Sort multi-line arguments Docker best practices Build cache Build every time Dockerfile for Development Environment
  5. Tip: Cleanup alias dockerRmAllContainers='docker rm $(docker ps -a -q)' alias

    dockerRmAllImages='docker rmi $(docker images -q)' alias dockerRmUnusedImages='docker rmi $(docker images -q -f dangling=true)' alias goAwayDocker='docker kill $(docker ps -a -q)'
  6. Node The physical machines of your kubernetes cluster(s) Whatever OS,

    as long as it can run docker Can be a RasPi or a 16 core Xeon
  7. Pod The basic building block of k8s Specifies a container

    (or containers) to be deployed together as a unit Look like a single “machine” from the inside Usually stateless*
  8. Deployments An abstraction above pods to manage replications and readiness

    Desired state configuration Scaling Rolling updates Rollbacks Liveness & Readiness Probes
  9. Deployments An abstraction above pods to manage replications and readiness

    Desired state configuration Scaling Rolling updates Rollbacks Liveness & Readiness Probes
  10. Service Provides a DNS name to access a service Based

    on selectors, it finds the pods that need to be load balanced Liveness & Readiness Probes
  11. Service Provides a DNS name to access a service Based

    on selectors, it finds the pods that need to be load balanced Liveness & Readiness Probes
  12. Volume A file storage location that lives as long as

    the pod does Some types back-end into persistent disk location (so that you don’t lose your data on restart)
  13. Secret A safe and secure way to provide sensitive information

    to your pods Per namespace isolation Credentials Can be presented as a volume to pods
  14. Allows you to push any amount of information, en mass,

    into containers Allows you to push implementation-specific details into a provided pod (see kube-lego example) I’ve even used it for environment variables Config-Maps