Slide 1

Slide 1 text

Kubernetes for the Mesos User Denver Mesos Users Group, July 12 2016 1

Slide 2

Slide 2 text

Brian Hicks brian@aster.is @brianhicks Denver Mesos Users Group, July 12 2016 2

Slide 3

Slide 3 text

Denver Mesos Users Group, July 12 2016 3

Slide 4

Slide 4 text

Demo! Denver Mesos Users Group, July 12 2016 4

Slide 5

Slide 5 text

Kubernetes? Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts. 4 kubernetes.io (emphasis mine) Denver Mesos Users Group, July 12 2016 5

Slide 6

Slide 6 text

Web Interface Denver Mesos Users Group, July 12 2016 6

Slide 7

Slide 7 text

Denver Mesos Users Group, July 12 2016 7

Slide 8

Slide 8 text

Denver Mesos Users Group, July 12 2016 8

Slide 9

Slide 9 text

Scheduling Denver Mesos Users Group, July 12 2016 9

Slide 10

Slide 10 text

Mesos 2-level scheduler, based on resources 1. Workers offer resources to masters 2. Masters offer resources to frameworks 3. Frameworks accept resource offers 4. Work gets scheduled Denver Mesos Users Group, July 12 2016 10

Slide 11

Slide 11 text

Kubernetes Multi-step constraint-based scheduler 1. Find "suitable" nodes for pod 2. Rank best nodes - for example, by least scheduled 3. Work gets scheduled Denver Mesos Users Group, July 12 2016 11

Slide 12

Slide 12 text

Application Definition Denver Mesos Users Group, July 12 2016 12

Slide 13

Slide 13 text

Marathon { "id": "basic-0", "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done", "cpus": 0.1, "mem": 10.0, "instances": 1 } Denver Mesos Users Group, July 12 2016 13

Slide 14

Slide 14 text

Kubernetes --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: basic-0 spec: replicas: 1 template: metadata: labels: app: basic-0 spec: containers: - name: basic-0 image: docker.io/gliderlabs/alpine:3.2 resources: limits: cpu: 100m memory: 10Mi args: - /bin/sh - -c - while [ true ] ; do echo Hello Kubernetes ; sleep 5 ; done Denver Mesos Users Group, July 12 2016 14

Slide 15

Slide 15 text

Kubernetes (CLI) kubectl run \ basic-0 \ --image=docker.io/gliderlabs/alpine:3.2 \ --limits="cpu=100m,memory=10Mi" \ -- /bin/sh -c 'while [ true ] ; do echo Hello Kubernetes ; sleep 5 ; done' Denver Mesos Users Group, July 12 2016 15

Slide 16

Slide 16 text

When K8s, when Mesos? Denver Mesos Users Group, July 12 2016 16

Slide 17

Slide 17 text

Fault Tolerance: Tie! Denver Mesos Users Group, July 12 2016 17

Slide 18

Slide 18 text

Data Frameworks: Mesos Denver Mesos Users Group, July 12 2016 18

Slide 19

Slide 19 text

12-factor Apps: K8s Denver Mesos Users Group, July 12 2016 19

Slide 20

Slide 20 text

UI: Mesos Denver Mesos Users Group, July 12 2016 20

Slide 21

Slide 21 text

CLI: K8s Denver Mesos Users Group, July 12 2016 21

Slide 22

Slide 22 text

IP-Per-Container: K8s Denver Mesos Users Group, July 12 2016 22

Slide 23

Slide 23 text

Multitenancy: K8s Denver Mesos Users Group, July 12 2016 23

Slide 24

Slide 24 text

Questions? Denver Mesos Users Group, July 12 2016 24