This document compares the three container orchestration frameworks: Docker Engine w/ Swarm Mode, Kubernetes and DC/OS.
| Feature | Docker Engine w/ Swarm mode | Kubernetes | DC/OS |
|---|---|---|---|
Development |
|||
Enterprise Offering |
Docker Datacenter |
Multiple Vendors |
Mesosphere Enterprise DC/OS |
Multiple clouds |
|||
On-premise |
Yes |
Yes |
Yes |
Cluster across multiple clouds |
Yes |
Yes (partly) |
Yes (agents) |
Service Discovery |
Yes |
|
Yes (multiple: DNS-based and proxy-based/L4 load balancer) |
Dynamic Scaling |
|
Marathon app spec (instance count) and multiple options |
|
Exposing a service |
Routing mesh |
|
Multiple (direct placement on public agent or, preferred, via Marathon-LB |
Run-once job |
|
|
|
Namespace |
|
|
via labels in System Marathon |
Global service |
|
|
Unique Attribute |
Maven |
|||
Volumes |
local persistent volumes as well as external persistent volumes |
||
Multiple Master |
Yes |
Yes |
|
Multi-host networking |
Yes |
Yes |
Yes |
Rolling Update |
https://github.com/arun-gupta/docker-scripts/blob/master/rolling-updates.adoc |
https://github.com/arun-gupta/kubernetes-java-sample/tree/master/rolling-update |
|
Container distribution strategies |
Automatic? |
Automatic, but custom schedulers supported. |
Automatic |
Affinity |
Labels |
Node (1.2) and Pod (1.4) affinity http://kubernetes.io/docs/user-guide/node-selection/ |
Marathon constraints and pods (in 1.9) |
Constraints |
|
|
|
Commercially supported |
Docker Data Center and others |
Google, Apprenda, Canonical, CoreOS, Cloud RTI others? |
Mesosphere |
Creating Couchbase Cluster |