Lee Calcote
Sept 30th, 2016
clouds, containers, infrastructure, applications
and their management
Use namespaces to deal with resource isolation for a single process.
Use cgroups to manage resources for a group of processes.
---
----
----
Implemented by -
and get your engines started
rkt executes as CLI; no daemon
Can run Docker Images and also App Container Images (ACIs)
Security has been a focal concern
uses HTTPS to locate and download remote ACIs and their attached signatures
Docker Engine runs a daemon
systemd
$ rkt run postgres
application
systemd
$ docker run postgres
application
Docker Engine
containerd
runC
Cluster Management
Host Discovery
Host Health Monitoring
Scheduling
Orchestrator Updates and Host Maintenance
Service Discovery
Networking and Load-Balancing
Application Health Monitoring
Application Deployments
Application Performance Monitoring
One size does not fit all.
A strict apples-to-apples comparison is inappropriate and not the objective, hence characterizing and contrasting.
an opinionated framework for building distributed systems
or as its tagline states "an open source system for automating deployment, scaling, and operations of applications."
Written in Golang, Kubernetes is lightweight, modular and extensible
considered a third generation container orchestrator led by Google, Red Hat and others.
bakes in load-balancing, scale, volumes, deployments, secret management and cross-cluster federated services among other features.
Declaratively, opinionated with many key features included
Swarm is simple and easy to setup.
Swarm is responsible for the clustering and scheduling aspects of orchestration.
Originally an imperative system, now declarative
Swarm’s architecture is not complex as those of Kubernetes and Mesos
Written in Golang, Swarm is lightweight, modular and extensible
Mesos is a distributed systems kernel
stitches together many different machines into a logical computer
Mesos has been around the longest (launched in 2009)
and is arguably the most stable, with highest (proven) scale currently
Mesos is written in C++
with Java, Python and C++ APIs
Marathon as a Framework
Marathon is one of a number of frameworks (Chronos and Aurora other examples) that may be run on top of Mesos
Frameworks have a scheduler and executor. Schedulers get resource offers. Executors run tasks.
Marathon is written in Scala
A high-level perspective of the container orchestrator spectrum
clouds, containers, infrastructure,
applications and their management