Slide 1

Slide 1 text

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

Slide 8

Slide 8 text

4 Common, General Patterns | Stateless | Stateful | Daemon | Batch

Slide 9

Slide 9 text

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