the great kubernetes rebase
TRANSCRIPT
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.
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