Compare the complexity of Kubernetes to Openstack - the next most similar project in the same problem space, and you will find Kubernetes is actually pretty simple.
Both fundamentally are about abstracting the way in which infrastructure is managed.
Kubernetes works with fully-fledged VM's as well - See Kubevirt
Kubernetes is the most popular, precisely because it is not over-engineered, the level of engineering matches the problem domain.
I remember someone also doing a demo of configuring your kubernetes deployment on your Java objects directly.