<p>I'm setting up a bare-metal hypervisor with VMware ESXi on a local server which will have a kubernetes cluster.</p>
<p>Should I use Linux containers with <strong>LXD</strong> to set up my Kubernetes cluster? or should I use several <strong>VMs</strong> that I can provide with my VMware hypervisor?</p>

Zahid
<p>I'm not sure what you are referring to by using LXD to set up your Kubernetes cluster. Kubernetes doesn't officially support <a href="https://linuxcontainers.org/" rel="nofollow noreferrer">LXC/LXD</a>.</p>
<p>So, you can use several VMs for your Kubernetes control (masters) and data planes (nodes). You can either use <a href="https://github.com/kubernetes/kubernetes/tree/master/pkg/kubelet/dockershim" rel="nofollow noreferrer">straight</a> docker or any <a href="https://containerd.io/" rel="nofollow noreferrer">containerd</a> or <a href="https://cri-o.io/" rel="nofollow noreferrer">cri-o</a> as shims to run your container runtime.</p>
<p>In any case, most of this stuff is already set up by the deployment tools like:</p>
<ul>
<li><a href="https://github.com/kubernetes-sigs/kubespray" rel="nofollow noreferrer">kubespray</a></li>
<li><a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/" rel="nofollow noreferrer">kubeadm</a></li>
<li><a href="https://github.com/kubernetes/kops" rel="nofollow noreferrer">kops</a></li>
<li>Vendor offerings (EKS, GKS, AKS, etc)</li>
<li>etc</li>
</ul>
<p>If you are looking for something more minimal you can try:</p>
<ul>
<li><a href="https://kubernetes.io/docs/tasks/tools/install-minikube/" rel="nofollow noreferrer">minikube</a></li>
<li><a href="https://kind.sigs.k8s.io/" rel="nofollow noreferrer">kind</a></li>
<li><a href="https://microk8s.io/" rel="nofollow noreferrer">microk8s</a></li>
<li><a href="https://k3s.io/" rel="nofollow noreferrer">K3s</a></li>
</ul>
