Download - Container orchestration
Transcript
- 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