Bare-metal clusters are a beast especially if you manage them yourself. There are companies that provide commercial support for bare-metal Kubernetes clusters, such as Platform 9, but the offerings are not mature yet. A solid open-source option is Kubespray, which can deploy industrial-strength Kubernetes clusters on bare metal, AWS, GCE, Azure, and OpenStack.
Here are some use cases where it makes sense:
- Budget concerns: If you already manage large-scale bare clusters, it may be much cheaper to run Kubernetes clusters on your physical infrastructure
- Low network latency: If you must have low latency between your nodes, then the VM overhead might be too much
- Regulatory requirements: If you must comply with regulations, you may not be allowed to use cloud providers
- You want total control over hardware: Cloud providers give you many options, but you may have particular needs