At present I prefer QEMU/KVM under the libvirt framework as it is pre-packaged for Ubuntu and is client-server so you can manage it locally or remotely from another system.
I have it on some headless servers but also on my main desktop for lab.
In the case of a headless server it even survived a do-release-upgrade
(where a clean install and re-importing machine and network definition XMLs from exported config wasn't as practical for the downtime).
Using virt-manager GUI, a management client only needs SSH access to the server at a minimum but the client-server aspect means even if you also interact from a CLI the operations are the same.
Cockpit is also looking interesting as a platform with web-based front-end for server management together with cockpit-machines interfacing with libvirt (I'm using version 264 from jammy (or focal backports).
However having previously used Xen (but back in its Citrix days) and vSphere I'm still curious about Proxmox.
prlzx on Zen: FTTC (VDSL) at ~40Mbps / 10Mbps
with IP4/6 (no v6? - not true Internet)