Chefkoch.de, Europas größte Online-Plattform und Community rund ums Thema Kochen, setzt auf Kubernetes als Open Source Container Cluster Manager. In dieser Präsentation erfahrt Ihr die Basics, warum wir es verwenden und auf welche Limitierungen wir dabei gestoßen sind.
Speaker:
Pascal Cremer (Senior Dev, Chefkoch.de)
https://twitter.com/b00gizm
https://github.com/b00gizm
Demo Repository:
https://github.com/b00giZm/k8-rolling-demo
Bonn Agile Meetup:
http://blog.bonnagile.de
https://twitter.com/bonnagile
2. KUBERNETES BEI CHEFKOCH
WHO'S THAT GUY?
▸ Pascal Cremer
▸ Senior Developer bei
Chefkoch (September 2015)
▸ DevOps by Heart
▸ Docker seit 2013, Kubernetes
seit 2015
▸ @b00igzm
3. KUBERNETES BEI CHEFKOCH
MICROSERVICES BEI CHEFKOCH
▸ Chefkoch: Europas größte Internet-Plattform und Community rund ums
Thema kochen
▸ Von 8 Kollegen in der IT Ende 2014 zu ca. 50 Kollegen im Mai 2016
▸ 6 agile, autonome Entwickler-Teams (Web, Mobile, BI)
▸ Anfang 2015: Modernisierung der alten, monolithischen Architektur hin zu
einer modernen Microservice-orientierten Architektur
▸ Herbst 2015: Realisierung neuer Features ausschließlich als Microservices
mit Docker und Kubernetes
▸ Heute: 15+ Microservices in Produktion auf sieben
CoreOS Nodes
8. KUBERNETES BEI CHEFKOCH
WAS IST KUBERNETES?
▸ Open Source Container Cluster Manager
▸ Entwickelt (und "dog fooded") von Google
▸ "Platform for automating deployment, scaling, and operations
of application containers across clusters of hosts"
▸ (Quasi) Bleeding Edge (Version 1.0 im Juli 2015)
▸ kubelet ("Process Watcher"), API-Server + etcd & kubectl (CLI
API-Client)
▸ Container agnostic: Docker, rkt, AppC
16. KUBERNETES BEI CHEFKOCH
KUBERNETES, THE BASICS
▸ Pods, Services, Labels, Replication Controllers (...)
▸ Pods beinhalten einen oder mehr Container
▸ Container in einem Pod teilen sich eine IP-Adresse, können gemeinsame
Volumens haben und sich über localhost finden
▸ Services bilden das "Frontend" zu einem oder mehr Pods, welche über
Labels selektiert werden
▸ Services können innerhalb von Containern z.B. über skydns gefunden
werden
▸ Replication Controller kümmern sich um die Replikation / Skalierung von
Pods
17. KUBERNETES BEI CHEFKOCH
KUBERNETES, THE GOOD PARTS
▸ All Power to DevOps!
▸ Neue Umgebungen (Staging, End2End, usw.) können schnell
"hochgezogen" werden
▸ Saubere Isolierung der Microservices durch Verwendung von
Kubernetes Namespaces
▸ Lifecycle Hooks, Readiness/Liveness Probes, Image Pull Policies...
▸ Zero-Downtime Deployments durch Rolling Updates
▸ Einfache Canary Deployments durch die Verwendung von Labels für
Application Pods
24. KUBERNETES BEI CHEFKOCH
KUBERNETES, THE BAD PARTS
▸ Steile Lernkurve
▸ Overhead für Entwickler (und Gegenwind vom Product-Management)
▸ Bleeding Edge: Bugs, Breaking Changes, spärliche Dokumentation
und fehlende Features (kubectl wait, volumes-from, Templates)
▸ Nur bedingt als lokale Dev-Umgebung geeignet, da sehr "teuer" in
Sachen Ressourcen (CPU, Memory)
▸ Cluster Updates sind aktuell noch eine größere Herausforderung
▸ "Selbst gestrickte" Lösungen notwendig für z.B. Logging, Monitoring,
verteiltes Dateisystem usw.