Top Banner
Container Orchestration Timo Derstappen @teemow
31

Container Orchestration @Docker Meetup Hamburg

Dec 18, 2014

Download

Technology

Timo Derstappen

Overview of Apache Mesos, CoreOS and Kubernetes
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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!