Container orchestration

download Container orchestration

If you can't read please download the document

description

 

Transcript of Container orchestration

  • 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