Container Orchestration @Docker Meetup Hamburg

Post on 18-Dec-2014

1.299 views 2 download

description

Overview of Apache Mesos, CoreOS and Kubernetes

Transcript of Container Orchestration @Docker Meetup Hamburg

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!