While all of these tools are great and exist for some time, there isn't a straight choice and answers of questions since a lot will depend upon your current infra, team potential and the scale you are looking at. For example, if you are in GCP kubernetes stand out as an obvioius choice
It's production ready
You get k8s as a service
Especially after RedHat rolling a product on the top of it as open shift, this project will have a long life cycle and community will always have answers to your queries or best practices content for you.
On the other had mesos has been proven to work with 30k nodes on large production setup but a has too much to wire and need the experience to work with. Both mesos and k8s has great documentation available.
Nomad is fairly new and swarm has scaling issues like rancher . I personally like harshicorp products and admire them. Building orchestration around nomad seems too much work, unless you do not want to kill 2 birds with one stone.
If you just need to choose one pick k8s its easy and solve a lot of complexity on the fly.