container orchestration @docker meetup hamburg
DESCRIPTION
Overview of Apache Mesos, CoreOS and KubernetesTRANSCRIPT
Container Orchestration
Timo Derstappen@teemow
● Microservice Architectures● Polyglot Persistence● Fault tolerance / High Availability● Scalability● Utilization
Why Orchestration?
One Single Computer
The Beginning
Overview
● Schedulers● Configuration Management● Service Discovery
Scheduler
● Resource management● Decide which job runs where● Monitor jobs● Dependency resolution
Scheduler Concepts
● Google Borg (Monolithic)● Apache Mesos (Two Level)● Hadoop on Demand (Two Level)● Google Omega (Shared State)Read: “Omega: flexible, scalable schedulers for large compute clusters”http://research.google.com/pubs/pub41684.html
Static Partitioning
Static Partitioning
http://cto.vmware.com/wp-content/uploads/2012/10/mesos_workloads.png
Configuration Management
● State which container runs where● Configure your containers● Basis for service discovery
Consistent Cluster State
● Etcd (Raft)● Consul (Raft)● Doozer (Paxos)● Zookeeper (Paxos)● Spanner (Paxos)
http://raftconsensus.github.io/
Service Discovery
● Ambassador Pattern● Consul (DNS)● Etcd● Haproxy / confd
Ambassador Pattern
Docker libchan
● Link containers from everywhere● Unix Socket● HTTP2 / TLS● Messaging / Raw TCP● Like Go Channels over the network
Many Choices
● CoreOS● Kubernetes● Apache Mesos● Consul / Serf● Project Atomic / Geard● Panamax
● Primitives of container orchestration● With adaptors to actual implementations● Docker Remote API abstraction● Not yet ready for prime time
Docker libswarm
Mesos
● Primitives for distributed scheduling● Meta Scheduler● Writing your own scheduler is “easy”● Docker Containerizer (since 0.20.0)
Mesos Apps
Marathon
● Framework for long running processes● REST API / Webinterface● Meta Framework
● Constraints● Health Checks● “Service Discovery” / Load balancing● Rolling update
Marathon
CoreOS
● Small linux distribution to manage container clusters
● Automatic updates● Using docker for packet management
CoreOS
● Fleet● Etcd
Fleet
● Systemd for the cluster● Simple scheduling via Metadata● Resolves service dependencies● Health Check / Failover
Kubernetes
● Container cluster management● Created by Google
Kubernetes Concepts
● Pods○ A group of containers on the same host○ They share the same network namespace○ Eg. presence, ambassador, logging, monitoring,
caching, configuring sidekicks● Labels● Service● Replication Controller
Kubernetes Example
Inception anyone?
● Kubernetes runs on CoreOS● Mesosphere works on Kubernetes
integration● Conair - run CoreOS/Kubernetes/Panamax
components in containers
Thanks for listening!
Timo Derstappen@teemow
http://giantswarm.io
We’re
hiring!