Preview:
DESCRIPTION
Citation preview
- Container Orchestration Timo Derstappen @teemow
- Giant Swarm PaaS for Simple Service Orchestration Based in
Cologne Hiring Devs and DevOps http://giantswarm.io
- The Beginning
- Containers are not that new But Docker solved packaging and
distribution very well Standardization: libcontainer Open Source
ecosystem is growing Why Containers?
- SOA / Microservice Architectures Polyglot Persistence Fault
tolerance / High Availability Scalability Utilization Why
Orchestration?
- Orchestration Layer Schedule Containers Configuration
Management Service Discovery Logging / Monitoring / Alerting
- Many Choices CoreOS Kubernetes (Google) Apache Mesos (Twitter,
Airbnb) Consul (Hashicorp) Project Atomic (Redhat)
- Docker libswarm Primitives of container orchestration With
adaptors to actual implementations Docker Remote API abstraction
Will be probably rewritten a view times before it will be
released
- Datacenter
- Static Partitioning
- Static Partitioning
http://cto.vmware.com/wp-content/uploads/2012/10/mesos_workloads.png
- One Single Computer
- Schedulers (High level) Google Borg (Monolithic) Apache Mesos
(Two Level) Hadoop on Demand (Two Level) Google Omega (Shared
State) Read: Omega: exible, scalable schedulers for large compute
clusters http://research.google.com/pubs/pub41684.html
- Mesos Primitives for distributed scheduling Meta Scheduler
Writing your own scheduler is easy Mesosphere announced Kubernetes
on Mesos
- Mesos Apps
- Schedulers Mesos => Marathon/Aurora/Chronos/... Kubernetes
(not Omega) CoreOS => Fleet
- Consistent Cluster State Etcd (Raft) Consul (Raft) Doozer
(Paxos) Zookeeper (Paxos) Spanner (Paxos)
http://raftconsensus.github.io/
- Service Discovery Ambassador Pattern Consul Etcd Haproxy /
confd
- Ambassador Pattern
- Plan 9
- Docker libchan Link containers from everywhere Unix Socket
HTTP2 / TLS Messaging / Raw TCP Like Go Channels over the
network
- Keep it outside of your containers Run it in separate but
privileged containers Marathon /metrics cAdvisor Monitoring /
Logging
- Mesos - Marathon Framework for long running processes Like init
for a cluster Constraints Health Checks Service Discovery / Load
balancing REST API
- Demo
- Kubernetes Design
- 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 Master Apiserver REST, Client kubecfg Controller
Manager Scheduler Etcd
- Kubernetes Node Docker Kubelet Watches etcd or receives via
HTTP a container manifest cAdvisor Proxy
- Demo
- CoreOS Systemd / Fleet Etcd Locksmith Small Footprint Unix
Philosophy
- Fleet Systemd API for the cluster Simple scheduling via
Metadata Health Check / Failover
- Demo