I don’t think you can realistically get good performance out of multiple vms on reasonable consumer hardware. 1 kernel per cpu.
Containers are great for server management though. Even if you aren’t using a cluster, its great to be able to stand up multiple instnaces of your services, and use kubernetes for I guess controllers to admin a lot of traffic.
I had a few machines lying around and I took it too far I guess.
I use Kubernetes (K3s) for bunch of services and a very small mini PC as a jump host. I use wake on lan to bring up my cluster on demand for the duration I need it and then shut it down to save power.
The mini PC has bunch of containers running including ‘blocky’ which basically is a software pi-hole without the pi.
Before all this though I used to use proxmox and let me tell you containers are the way to go. It has been super easy to set things up and in general way easier to manage everything.
I use ansible for basically automating everything.
I don’t know how useful this is for you but here you go. https://github.com/uknth/homelab