Successfully reported this slideshow.

Container orchestration

13,625 views

Published on

Published in: Technology

Container orchestration

  1. 1. Container Orchestration Timo Derstappen @teemow
  2. 2. Giant Swarm ● PaaS for Simple Service Orchestration ● Based in Cologne ● Hiring Devs and DevOps http://giantswarm.io
  3. 3. The Beginning
  4. 4. ● Containers are not that new ● But Docker solved packaging and distribution very well ● Standardization: libcontainer ● Open Source ecosystem is growing Why Containers?
  5. 5. ● SOA / Microservice Architectures ● Polyglot Persistence ● Fault tolerance / High Availability ● Scalability ● Utilization Why Orchestration?
  6. 6. Orchestration Layer ● Schedule Containers ● Configuration Management ● Service Discovery ● Logging / Monitoring / Alerting
  7. 7. Many Choices ● CoreOS ● Kubernetes (Google) ● Apache Mesos (Twitter, Airbnb) ● Consul (Hashicorp) ● Project Atomic (Redhat)
  8. 8. 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
  9. 9. Datacenter
  10. 10. Static Partitioning
  11. 11. Static Partitioning http://cto.vmware.com/wp-content/uploads/2012/10/mesos_workloads.png
  12. 12. One Single Computer
  13. 13. Schedulers (High level) ● 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
  14. 14. Mesos ● Primitives for distributed scheduling ● Meta Scheduler ● Writing your own scheduler is “easy” ● Mesosphere announced Kubernetes on Mesos
  15. 15. Mesos Apps
  16. 16. Schedulers ● Mesos => Marathon/Aurora/Chronos/... ● Kubernetes (not Omega) ● CoreOS => Fleet
  17. 17. Consistent Cluster State ● Etcd (Raft) ● Consul (Raft) ● Doozer (Paxos) ● Zookeeper (Paxos) ● Spanner (Paxos) http://raftconsensus.github.io/
  18. 18. Service Discovery ● Ambassador Pattern ● Consul ● Etcd ● Haproxy / confd
  19. 19. Ambassador Pattern
  20. 20. Plan 9
  21. 21. Docker libchan ● Link containers from everywhere ● Unix Socket ● HTTP2 / TLS ● Messaging / Raw TCP ● Like Go Channels over the network
  22. 22. ● Keep it outside of your containers ● Run it in separate but privileged containers ● Marathon /metrics ● cAdvisor Monitoring / Logging
  23. 23. Mesos - Marathon ● Framework for long running processes ● Like init for a cluster ● Constraints ● Health Checks ● “Service Discovery” / Load balancing ● REST API
  24. 24. Demo
  25. 25. Kubernetes Design
  26. 26. 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
  27. 27. Kubernetes Master ● Apiserver ○ REST, Client kubecfg ● Controller Manager ● Scheduler ● Etcd
  28. 28. Kubernetes Node ● Docker ● Kubelet ○ Watches etcd or receives via HTTP a container manifest ● cAdvisor ● Proxy
  29. 29. Demo
  30. 30. CoreOS ● Systemd / Fleet ● Etcd ● Locksmith ● Small Footprint ● Unix Philosophy
  31. 31. Fleet ● Systemd API for the cluster ● Simple scheduling via Metadata ● Health Check / Failover
  32. 32. Demo

×