The question seems overly broad to answer meaningfully. So, let me answer a narrower question instead!
Canonical (the company behind Ubuntu) has currently the following products:
Each of these is capable of managing a fleet of KVM virtual machines running on multiple Ubuntu hosts.
In case of MAAS (Metal-As-A-Service), note that it can orchestrate either preprovisioned libvirt machines (bring them up, netboot them, provision os...) or it can talk to libvirt (and also LXD) to create new VMs. See https://maas.io/tutorials/create-kvm-pods-with-maas
Compared to other solutions (and compared to not running on Ubuntu), the main Ubuntu advantage (tm) is probably the Ubuntu FAN Network, which is an (almost) zero-config overlay network. https://news.ycombinator.com/item?id=9764391
Additionally, Canonical is happy with you running Kubernetes
This means you can install that and then put on it KubeVirt to run the KVM machines https://kubevirt.io/user-guide/operations/installation/
Or use MicroStack, which is OpenStack on Kubernetes. This is probably what Canonical wants you to do (instead of using KubeVirt).
In general, think whether you need all the typical cluster features (such as live VM migration) or if you can live without these in exchange for a simpler setup. In case of LXD, live migration precludes using Ubuntu Fan network and requires to have shared storage, such as Ceph.