Use-case: GPU-heavy ML workloads
Reproducibility idea: Terraform definition of system container with NixOS image for reproducibility.
= isolation for workloads sharing the same machine
VMs are only needed for untrusted users (of cloud providers) or workloads that need their own kernels. They add unnecessary overhead, except for micro VMs like "kata containers" (misnomer).
Containers nowadays are more about packaging / reproducibility by freezing dependencies and protection against accidentally breaking your host system by limiting privileges.
User containers only run a single process (in practice) and need vendor provided toolkits to access GPUs that adds overhead.
Systems containers (LXC/LXD or systemd-nspawn) can pass through any device.
= collaboration of workloads over several machines
"Bare metal kubernetes" is a misnomer and should be called "on-prem kubernetes". It always uses user-containers.
There are some Kubernetes equivalent things for system containers.