Containers and
orchestration 101
Docker, Kubernetes and Helm
Jacob Tomlinson
Slide 2
Slide 2 text
hello!
I am Jacob Tomlinson
2
Slide 3
Slide 3 text
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/
Slide 4
Slide 4 text
Containers and orchestration 101
Docker Kubernetes Helm
4
A tool for
building
containers
A platform to
run
containers on
A deployment
toolkit for
kubernetes
Slide 5
Slide 5 text
Docker
“Docker creates simple tooling and a universal packaging approach
that bundles up all application dependencies inside a container.”
Slide 6
Slide 6 text
Docker concepts
We will cover
✘ Containers
✘ Images
✘ Registries
6
We won’t cover
✘ Services
✘ Swarms
✘ Stacks
Slide 7
Slide 7 text
Kubernetes
“Kubernetes is an open-source system for automating deployment,
scaling, and management of containerized applications.”
Slide 8
Slide 8 text
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
Slide 9
Slide 9 text
Helm
“Helm is the best way to find, share, and use software built for
Kubernetes.”
Slide 10
Slide 10 text
Helm concepts
We will cover
✘ Charts
✘ Templates
✘ Values
✘ Notes
✘ Requirements
10
We won’t cover
✘ Tiller
✘ Helpers
✘ Repositories
Slide 11
Slide 11 text
Walkthrough
Let’s package and deploy an application from
start to finish!
https://github.com/jacobtomlinson/tech-exeter-conference-2018
Slide 12
Slide 12 text
12
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
Building a docker image
14
$ docker build -t /:
Building…
$ docker push /:
Uploading to registry…
$ docker run [args…] /:
Running container...
Slide 15
Slide 15 text
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...
Slide 16
Slide 16 text
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...
Slide 17
Slide 17 text
Updating the application
17
$ helm upgrade -f
Updating your existing chart...
Slide 18
Slide 18 text
Thanks for listening!
Any questions?
@_jacobtomlinson
[email protected]
18