The Great Kubernetes Rebase

Preview:

Citation preview

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.

The Great Kubernetes RebaseLessons the Deis Team is Learning

The Deis Project

• Containerized PaaS

• Easy as Heroku

• Run on your own infrastructure

• Pick what you like

Deis v1

CoreOS

Fleet Etcd

Docker

RouterController Registry

BuilderStorageLogger

Apps

Deis v2

???

Kubernetes

RouterController Registry

SlugbuilderObject StoreLogger

Apps

EtcdSlugrunnerGit GW

Five Lessons We Learned

5. Turtles All the Way Down

The Things We Do For Security

http://is.gd/raLYgY

Pod + Container

Qemu

Docker

Image Builder

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

Well….

“Did it work?”

4. The Bartleby Effect

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/

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.

Today we’re happy to release Helm!

http://helm.sh

3. The Key (Value) To Success

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

2. The Chumbawamba Principle

–Tubthumping

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

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

• Kubernetes-aware images that give us…

• Custom bootstrap

• Downward API

• Resilience (bounce-back)

1. The Service is Part of the Consumer

We Tend to Divide Services and Consumers Like This

My App My DatabaseDB Service

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.

Service Belongs to Consumer

My App My DatabaseDB Service

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

The EndQuestions?

http://is.gd/hg0hh4

Recommended