<p>From what I understand, Kubernetes/Mesosphere is  a cluster manager and Docker Swarm is an orchestration tool. I am trying to understand how they are different? Is Docker Swarm analogous to the POSIX API in the Docker world while Kubernetes/Mesosphere are different implementations? Or are they different layers?</p>

<p><strong>Disclosure: I'm a lead engineer on Kubernetes</strong></p>

<p>Kubernetes is a cluster orchestration system inspired by the container orchestration that runs at Google.  Built by many of the same engineers who built that system. It was designed from the ground up to be an environment for building distributed applications from containers. It includes primitives for replication and service discovery as core primitives, where-as such things are added via frameworks in Mesos. The primary goal of Kubernetes is a system for building, running and managing distributed systems.</p>

<p>Swarm is an effort by Docker to extend the existing Docker API to make a cluster of machines look like a single Docker API. Fundamentally, our experience at Google and elsewhere indicates that the node API is insufficient for a cluster API. You can see a bunch of discussion on this here: <a href="https://github.com/docker/docker/pull/8859" rel="noreferrer">https://github.com/docker/docker/pull/8859</a> and here: <a href="https://github.com/docker/docker/issues/8781" rel="noreferrer">https://github.com/docker/docker/issues/8781</a></p>
