Por lo que yo entiendo:
Mesos, Kubernetes y Fleet están tratando de resolver un problema muy similar. La idea es que abstraiga todo su hardware de los desarrolladores y la 'herramienta de administración de clúster' lo resuelva por usted. Entonces, todo lo que necesita hacer es darle un contenedor al clúster, darle información (mantenerlo funcionando permanentemente, escalar si sucede X, etc.) y el administrador del clúster lo hará posible.
Con Mesos, realiza toda la administración del clúster por usted, pero no incluye el programador. El programador es el bit que dice, ok, este proceso necesita 2 procesos y 512 MB de RAM, y tengo una máquina allí con eso gratis, así que lo ejecutaré en esa máquina. Hay algunos programadores de complementos disponibles para Mesos: Marathon y Chronos y puede escribir el suyo. Esto le da mucho poder de distribución de recursos y escalamiento de clúster, etc.
Fleet y Kubernetes parecen abstraer ese tipo de detalles (por lo que no tiene que escribir su propio planificador básicamente). Esto significa que debe definir sus tareas y enviarlas en el formato / forma definidos por Fleet o Kubernetes y luego se hacen cargo y programan las tareas (contenedores) por usted.
Entonces, supongo: usar Mesos puede significar un poco más de trabajo para escribir su propio planificador, pero potencialmente proporciona más flexibilidad si es necesario.
Creo que la idea de ejecutar Kubernetes sobre Mesos es que Kubernetes actúa como el planificador de Mesos. Personalmente, no estoy seguro de los beneficios que esto conlleva correr uno u otro por sí solo (¡espero que alguien intervenga y explique!)
Como dijo MikeB ... es temprano, y todo está en juego (vigile también el ECS de Amazon), ¡así que hay muchos estándares competitivos y mucha superposición!
-editar- No mencioné el enjambre de Docker ya que realmente no tengo mucha experiencia con él.