You have a very narrow view of why certain technologies should or should not be used. I'm not behind CG-NAT but there is still plenty of value to Cloudflare tunnels for me. Even behind my IP I have a fairly complex network environment but CF tunnels make it easy for me to stand up a connection from a cluster, make it resilient and highly available, and automatically handle failure modes to keep the service up to the world. They also give me a transferable configuration that allows me to quickly move my apps to the cloud or to other hosting if I need to.
So no, I'm not "mindlessly" using them, and I'm not using them just for security or just for DDoS protection. I've actually put quite a lot of thought into my architecture and why I used certain technologies, thank you very much.
I’ve run Kubernetes training sessions where all of the trainees had Windows laptops with VMware Workstation. I used K3S on K3OS as the guest OS at the time, and built a cluster of 3 Kubernetes servers with 2 CPUs and 2GB of RAM each, that ran a few basic workloads. I don’t see why you couldn’t do something similar on Ubuntu with VirtualBox as the vm host.
A simpler alternative might be to use microk8s or minikube on Ubuntu.