Tanto quanto eu entendo:
Mesos, Kubernetes e Fleet estão tentando resolver um problema muito semelhante. A idéia é que você abstraia todo o seu hardware dos desenvolvedores e a 'ferramenta de gerenciamento de cluster' resolva tudo para você. Então, tudo que você precisa fazer é fornecer um contêiner para o cluster, fornecer algumas informações (mantê-lo em execução permanentemente, aumentar a escala se X acontecer, etc.) e o gerenciador de cluster fará com que isso aconteça.
Com o Mesos, ele faz todo o gerenciamento de cluster para você, mas não inclui o planejador. O agendador é o que diz: ok, esse processo precisa de 2 procs e 512 MB de RAM, e eu tenho uma máquina com esse free, então eu vou executá-la nessa máquina. Existem alguns agendadores de plugins disponíveis para o Mesos: Marathon e Chronos e você pode escrever o seu. Isso lhe dá muita capacidade de distribuição de recursos e dimensionamento de cluster, etc.
Fleet e Kubernetes parecem abstrair esses tipos de detalhes (para que você não precise escrever seu próprio agendador basicamente). Isso significa que você precisa definir suas tarefas e enviá-las no formato / maneira definida pela Fleet ou Kubernetes e, em seguida, elas assumem e agendam as tarefas (contêineres) para você.
Então eu acho: usar o Mesos pode significar um pouco mais de trabalho para escrever seu próprio agendador, mas potencialmente fornece mais flexibilidade, se necessário.
Penso que a ideia de rodar o Kubernetes no topo do Mesos é que o Kubernetes age como o agendador do Mesos. Pessoalmente, não tenho certeza de quais benefícios isso traz sobre a execução de um ou outro por conta própria (espero que alguém entre e explique!)
Como MikeB disse ... são os primeiros dias, e está tudo em disputa (fique de olho também no ECS da Amazon), por isso há muitos padrões concorrentes e muita sobreposição!
-Editar- Eu não mencionei o enxame do Docker porque não tenho muita experiência com ele.