24
Matt Butcher Deis Architect Author of Go in Practice & 7 other books. Contributed to over 100 FOSS projects. Philosopher (no, really). Has serious coffee drinking problems.

The Great Kubernetes Rebase

Embed Size (px)

Citation preview

Page 1: The Great Kubernetes Rebase

Matt ButcherDeis Architect

Author of Go in Practice & 7 other books. Contributed to over 100 FOSS projects. Philosopher (no, really).

Has serious coffee drinking problems.

Page 2: The Great Kubernetes Rebase

The Great Kubernetes RebaseLessons the Deis Team is Learning

Page 3: The Great Kubernetes Rebase

The Deis Project

• Containerized PaaS

• Easy as Heroku

• Run on your own infrastructure

• Pick what you like

Page 4: The Great Kubernetes Rebase

Deis v1

CoreOS

Fleet Etcd

Docker

RouterController Registry

BuilderStorageLogger

Apps

Page 5: The Great Kubernetes Rebase

Deis v2

???

Kubernetes

RouterController Registry

SlugbuilderObject StoreLogger

Apps

EtcdSlugrunnerGit GW

Page 6: The Great Kubernetes Rebase

Five Lessons We Learned

Page 7: The Great Kubernetes Rebase

5. Turtles All the Way Down

Page 8: The Great Kubernetes Rebase

The Things We Do For Security

http://is.gd/raLYgY

Pod + Container

Qemu

Docker

Image Builder

Page 9: The Great Kubernetes Rebase

Fun Fact: It’s really hard to find a photo with more than four turtles stacked.

Page 10: The Great Kubernetes Rebase

Well….

“Did it work?”

Page 11: The Great Kubernetes Rebase

4. The Bartleby Effect

Page 12: The Great Kubernetes Rebase

Managing Manifests

• No “real world examples” outside of the k8s codebase

• Examples and tutorials often broken

• Dearth of tools for working with manifests

• Steep learning curve for newcomers (and we were newcomers)

http://gastoncavalleri.com/2014/05/14/bartleby-existentialism-and-marxism-by-gaston-cavalleri/

Page 13: The Great Kubernetes Rebase

At The HelmWe thought a lot about this problem. We wanted something like Homebrew (or maybe apt-get/yum) for Kubernetes.

So we created Helm, a package manager for Kubernetes.

Page 14: The Great Kubernetes Rebase

Today we’re happy to release Helm!

http://helm.sh

Page 15: The Great Kubernetes Rebase

3. The Key (Value) To Success

Page 16: The Great Kubernetes Rebase

Etc, Etc, Etc(d).

• We needed mutable K/V storage across arbitrary pods

• Relearning how to run a core service

• Internal discovery

• Which leads us to…

http://is.gd/m4P35X

Page 17: The Great Kubernetes Rebase

2. The Chumbawamba Principle

Page 18: The Great Kubernetes Rebase

–Tubthumping

“I get knocked down, but I get up again.”

Page 19: The Great Kubernetes Rebase

Don’t Just Do “Images”• No more “solipsistic” Docker images

• Kubernetes-aware images that give us…

• Custom bootstrap

• Downward API

• Resilience (bounce-back)

Page 20: The Great Kubernetes Rebase

1. The Service is Part of the Consumer

Page 21: The Great Kubernetes Rebase

We Tend to Divide Services and Consumers Like This

My App My DatabaseDB Service

Page 22: The Great Kubernetes Rebase

A Little Problem

My App My DatabaseDB Service

Problem: App code (thus dev) needs to know about services

at dev time.But service is not part of

app code.

Page 23: The Great Kubernetes Rebase

Service Belongs to Consumer

My App My DatabaseDB Service

Relationship between svc and app is closer. Label query (still) handles this.

Page 24: The Great Kubernetes Rebase

The EndQuestions?

http://is.gd/hg0hh4