Running Workloads in Kubernetes
Janet Kuo, Software Engineer, Google
Slide 2
Slide 2 text
https://goo.gl/dWYJq4
Slide 3
Slide 3 text
https://goo.gl/2NLT0f
VP of Software Architecture @Spire.
Slide 4
Slide 4 text
Concept
| Kubernetes: a platform for application patterns
| Pod: a single instance of an application in Kubernetes
| Controller: manages replicated pods for an application pattern
Slide 5
Slide 5 text
Master node Worker node
Worker node
Slide 6
Slide 6 text
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
Slide 7
Slide 7 text
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
C
4 Common, General Patterns
| Stateless: web frontends, web servers
| Stateful
| Daemon
| Batch
Slide 10
Slide 10 text
4 Common, General Patterns
| Stateless: web frontends, web servers
| Stateful: databases, message queues
| Daemon
| Batch
Slide 11
Slide 11 text
4 Common, General Patterns
| Stateless: web frontends, web servers
| Stateful: databases, message queues
| Daemon: logs collection, node monitoring
| Batch
Slide 12
Slide 12 text
4 Common, General Patterns
| Stateless: web frontends, web servers
| Stateful: databases, message queues
| Daemon: logs collection, node monitoring
| Batch: processing of independent work items
Slide 13
Slide 13 text
Stateless: Deployment
| Availability
| Scale, Deploy, Rolling Update
| e.g. Web apps, mobile backends, API servers, ...
Slide 14
Slide 14 text
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
Service
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/dep
Slide 15
Slide 15 text
Stateful: StatefulSet
| Consistency
| Stable identity and state
| Ordered deployment, scaling, deletion
| e.g. Databases, caches, message queues, ...
Slide 16
Slide 16 text
Master node Worker node
Worker node
Pod 0
Container Container
Pod 1
Container Container
Service
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/stateful
Slide 17
Slide 17 text
Daemon: DaemonSet
| One per node
| Node labels
| e.g. Logs collection daemon, node monitoring daemon, ...
Slide 18
Slide 18 text
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
Service
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/ds
Slide 19
Slide 19 text
Batch: Jobs
| Parallel + Complete
| Related but independent work
| e.g. Emails to send, frames to render, ...
Slide 20
Slide 20 text
Master node Worker node
Worker node
Pod
Container Container
Pod
Container Container
C
async
Demo: github.com/janetkuo/k8s-demos/tree/master/jobs
Slide 21
Slide 21 text
Recap
| Stateless: Deployment; availability
| Stateful: StatefulSet; consistency
| Daemon: DaemonSet; one per node
| Batch: Job; parallel to completion
Slide 22
Slide 22 text
Where do I start?
| Helm: The Kubernetes Package Manager
github.com/kubernetes/helm
| Helm Charts: Curated applications for Kubernetes
github.com/kubernetes/charts
Slide 23
Slide 23 text
How do I customize?
| Kubernetes is extensible!
| Write your own controllers
| e.g. github.com/upmc-enterprises/elasticsearch-operator
github.com/coreos/etcd-operator
Slide 24
Slide 24 text
Kubernetes is Open
github.com/kubernetes/kubernetes
kubernetes.io
slack.k8s.io / @janet
@kubernetesio / @janet_kuo