Container Orchestration @Docker Meetup Hamburg

31
Container Orchestration Timo Derstappen @teemow

description

Overview of Apache Mesos, CoreOS and Kubernetes

Transcript of Container Orchestration @Docker Meetup Hamburg

Page 1: Container Orchestration @Docker Meetup Hamburg

Container Orchestration

Timo Derstappen@teemow

Page 2: Container Orchestration @Docker Meetup Hamburg

● Microservice Architectures● Polyglot Persistence● Fault tolerance / High Availability● Scalability● Utilization

Why Orchestration?

Page 3: Container Orchestration @Docker Meetup Hamburg

One Single Computer

Page 4: Container Orchestration @Docker Meetup Hamburg
Page 5: Container Orchestration @Docker Meetup Hamburg

The Beginning

Page 6: Container Orchestration @Docker Meetup Hamburg

Overview

● Schedulers● Configuration Management● Service Discovery

Page 7: Container Orchestration @Docker Meetup Hamburg

Scheduler

● Resource management● Decide which job runs where● Monitor jobs● Dependency resolution

Page 8: Container Orchestration @Docker Meetup Hamburg

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

Page 9: Container Orchestration @Docker Meetup Hamburg

Static Partitioning

Page 10: Container Orchestration @Docker Meetup Hamburg

Static Partitioning

http://cto.vmware.com/wp-content/uploads/2012/10/mesos_workloads.png

Page 11: Container Orchestration @Docker Meetup Hamburg

Configuration Management

● State which container runs where● Configure your containers● Basis for service discovery

Page 12: Container Orchestration @Docker Meetup Hamburg

Consistent Cluster State

● Etcd (Raft)● Consul (Raft)● Doozer (Paxos)● Zookeeper (Paxos)● Spanner (Paxos)

http://raftconsensus.github.io/

Page 13: Container Orchestration @Docker Meetup Hamburg

Service Discovery

● Ambassador Pattern● Consul (DNS)● Etcd● Haproxy / confd

Page 14: Container Orchestration @Docker Meetup Hamburg

Ambassador Pattern

Page 15: Container Orchestration @Docker Meetup Hamburg

Docker libchan

● Link containers from everywhere● Unix Socket● HTTP2 / TLS● Messaging / Raw TCP● Like Go Channels over the network

Page 16: Container Orchestration @Docker Meetup Hamburg

Many Choices

● CoreOS● Kubernetes● Apache Mesos● Consul / Serf● Project Atomic / Geard● Panamax

Page 17: Container Orchestration @Docker Meetup Hamburg
Page 18: Container Orchestration @Docker Meetup Hamburg

● Primitives of container orchestration● With adaptors to actual implementations● Docker Remote API abstraction● Not yet ready for prime time

Docker libswarm

Page 19: Container Orchestration @Docker Meetup Hamburg

Mesos

● Primitives for distributed scheduling● Meta Scheduler● Writing your own scheduler is “easy”● Docker Containerizer (since 0.20.0)

Page 20: Container Orchestration @Docker Meetup Hamburg
Page 21: Container Orchestration @Docker Meetup Hamburg

Mesos Apps

Page 22: Container Orchestration @Docker Meetup Hamburg

Marathon

● Framework for long running processes● REST API / Webinterface● Meta Framework

Page 23: Container Orchestration @Docker Meetup Hamburg

● Constraints● Health Checks● “Service Discovery” / Load balancing● Rolling update

Marathon

Page 24: Container Orchestration @Docker Meetup Hamburg

CoreOS

● Small linux distribution to manage container clusters

● Automatic updates● Using docker for packet management

Page 25: Container Orchestration @Docker Meetup Hamburg

CoreOS

● Fleet● Etcd

Page 26: Container Orchestration @Docker Meetup Hamburg

Fleet

● Systemd for the cluster● Simple scheduling via Metadata● Resolves service dependencies● Health Check / Failover

Page 27: Container Orchestration @Docker Meetup Hamburg

Kubernetes

● Container cluster management● Created by Google

Page 28: Container Orchestration @Docker Meetup Hamburg

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

Page 29: Container Orchestration @Docker Meetup Hamburg

Kubernetes Example

Page 30: Container Orchestration @Docker Meetup Hamburg

Inception anyone?

● Kubernetes runs on CoreOS● Mesosphere works on Kubernetes

integration● Conair - run CoreOS/Kubernetes/Panamax

components in containers

Page 31: Container Orchestration @Docker Meetup Hamburg

Thanks for listening!

Timo Derstappen@teemow

http://giantswarm.io

We’re

hiring!