Kubeadm (https://kubernetes.io/docs/setup/independent/create-cluster-...) is great if you can install the base OS yourself (manually or through existing scripting you might have). The great thing is that you end up with a fully secured cluster, which (unfortunately) isn't the case with every tool or guide out there.
You might enjoy this guide[1]. It explains how to deploy and run a secure, fully functional Kubernetes cluster outside platforms like GCE or AWS. Provisioning and example manifests are provided as well.
If you're familiar with ansible, it'll be quite easy to setup a k8s cluster on bare metal with kubespray. What's more is that it deploys production ready cluster with HA support