Both are better in their own ways and the selection is a personal preference.
It depends on your requirements, Kubernetes was built with over a decade of experience on running containers at scale at Google. It was purposely built addressing almost all the aspects that may apply to software applications when running on containers. However, it might not mean that Kubernetes would take over container orchestration in the future. Mesos or rather DC/OS (Mesos is the core and DC/OS is the container cluster manager) has its own advantages. More importantly, at the moment DC/OS is in the process of introducing some of the key features available in Kubernetes to DC/OS (for an example, overlay networking support was introduced recently in DC/OS 1.8). I have worked with many clients who use both of these platforms for running production grade software systems on container and all of them were very satisfied with what they were able to achieve on each platform.
To know more about these technologies in depth you must take up following Kubernetes Training Course. If you are more into reading then you must read the following DevOps tutorial, which covers a lot about these things.
Since many of you may already know what Kubernetes has to offer for containerization, let me explain (according to my understanding) in which cases DC/OS out performs:
Both Kubernetes and DC/OS provide an extension point for plugging in custom container schedulers. However, at the moment I do not see any custom scheduler implementations on Kubernetes. DC/OS provides a list of schedulers for big data and analytics platforms. These are called Mesos Frameworks and they are quite useful for executing workloads much more efficiently than the default scheduler.
DC/OS provides an attractive UI for visualizing resource availability and usages at the datacenter level. AFAIU, Kubernetes put more focus on the runtime and the CLI than the UI. Nevertheless, OpenShift provides a better UI for Kubernetes in a different flavour/distribution.
In summary, I think it would be difficult to say one is better than the other. Both have their own advantages. Therefore might need to make the decision based on the requirements of the software applications that need to be deployed on containers. Have a look at the following video to get more insights about these things link is as follows:-