KubeCon Europe 2017: Running Workloads in Kubernetes

24
Running Workloads in Kubernetes Janet Kuo, Software Engineer, Google

Transcript of KubeCon Europe 2017: Running Workloads in Kubernetes

Page 1: KubeCon Europe 2017: Running Workloads in Kubernetes

Running Workloads in KubernetesJanet Kuo, Software Engineer, Google

Page 2: KubeCon Europe 2017: Running Workloads in Kubernetes

https://goo.gl/dWYJq4

Page 3: KubeCon Europe 2017: Running Workloads in Kubernetes

https://goo.gl/2NLT0f

VP of Software Architecture @Spire.

Page 4: KubeCon Europe 2017: Running Workloads in Kubernetes

Concept| Kubernetes: a platform for application patterns

| Pod: a single instance of an application in Kubernetes

| Controller: manages replicated pods for an application pattern

Page 5: KubeCon Europe 2017: Running Workloads in Kubernetes

Master node Worker node

Worker node

Page 6: KubeCon Europe 2017: Running Workloads in Kubernetes

Master node Worker node

Worker node

Pod

Container Container

Pod

Container Container

Page 7: KubeCon Europe 2017: Running Workloads in Kubernetes

Master node Worker node

Worker node

Pod

Container Container

Pod

Container Container

C

Page 8: KubeCon Europe 2017: Running Workloads in Kubernetes

4 Common, General Patterns| Stateless

| Stateful

| Daemon

| Batch

Page 9: KubeCon Europe 2017: Running Workloads in Kubernetes

4 Common, General Patterns| Stateless: web frontends, web servers

| Stateful

| Daemon

| Batch

Page 10: KubeCon Europe 2017: Running Workloads in Kubernetes

4 Common, General Patterns| Stateless: web frontends, web servers

| Stateful: databases, message queues

| Daemon

| Batch

Page 11: KubeCon Europe 2017: Running Workloads in Kubernetes

4 Common, General Patterns| Stateless: web frontends, web servers

| Stateful: databases, message queues

| Daemon: logs collection, node monitoring

| Batch

Page 12: KubeCon Europe 2017: Running Workloads in Kubernetes

4 Common, General Patterns| Stateless: web frontends, web servers

| Stateful: databases, message queues

| Daemon: logs collection, node monitoring

| Batch: processing of independent work items

Page 13: KubeCon Europe 2017: Running Workloads in Kubernetes

Stateless: Deployment| Availability

| Scale, Deploy, Rolling Update

| e.g. Web apps, mobile backends, API servers, ...

Page 14: KubeCon Europe 2017: Running Workloads in Kubernetes

kubectl

Master node Worker node

Worker node

Pod

Container Container

Pod

Container Container

ServiceC

async

Demo: github.com/janetkuo/k8s-demos/tree/master/dep

Page 15: KubeCon Europe 2017: Running Workloads in Kubernetes

Stateful: StatefulSet| Consistency

| Stable identity and state

| Ordered deployment, scaling, deletion

| e.g. Databases, caches, message queues, ...

Page 16: KubeCon Europe 2017: Running Workloads in Kubernetes

kubectl

Master node Worker node

Worker node

Pod 0

Container Container

Pod 1

Container Container

ServiceC

async

Demo: github.com/janetkuo/k8s-demos/tree/master/stateful

Page 17: KubeCon Europe 2017: Running Workloads in Kubernetes

Daemon: DaemonSet| One per node

| Node labels

| e.g. Logs collection daemon, node monitoring daemon, ...

Page 18: KubeCon Europe 2017: Running Workloads in Kubernetes

kubectl

Master node Worker node

Worker node

Pod

Container Container

Pod

Container Container

ServiceC

async

Demo: github.com/janetkuo/k8s-demos/tree/master/ds

Page 19: KubeCon Europe 2017: Running Workloads in Kubernetes

Batch: Jobs| Parallel + Complete

| Related but independent work

| e.g. Emails to send, frames to render, ...

Page 20: KubeCon Europe 2017: Running Workloads in Kubernetes

kubectl

Master node Worker node

Worker node

Pod

Container Container

Pod

Container Container

Casync

Demo: github.com/janetkuo/k8s-demos/tree/master/jobs

Page 21: KubeCon Europe 2017: Running Workloads in Kubernetes

Recap| Stateless: Deployment; availability

| Stateful: StatefulSet; consistency

| Daemon: DaemonSet; one per node

| Batch: Job; parallel to completion

Page 22: KubeCon Europe 2017: Running Workloads in Kubernetes

Where do I start?| Helm: The Kubernetes Package Manager github.com/kubernetes/helm

| Helm Charts: Curated applications for Kubernetes github.com/kubernetes/charts

Page 23: KubeCon Europe 2017: Running Workloads in Kubernetes

How do I customize?| Kubernetes is extensible!

| Write your own controllers

| e.g. github.com/upmc-enterprises/elasticsearch-operator github.com/coreos/etcd-operator

Page 24: KubeCon Europe 2017: Running Workloads in Kubernetes

Kubernetes is Open github.com/kubernetes/kubernetes

kubernetes.io

slack.k8s.io / @janet

@kubernetesio / @janet_kuo