It's about bin packing. Underutilized servers can have more VMs packed into them. Not physical servers sitting around unused, but additional capacity on in-use machines.
From k8s webpage (https://kubernetes.io/): "Automatically places containers based on their resource requirements and other constraints, while not sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources."
Furthermore, running k8s to pack containers into AWS instances that are are themselves actually full blown VMs running on a hypervisor is of course one way to do computing. It is perhaps worth considering that there are others, more direct ways that can be achieved more economically.