Потому что куб имеет нормальное API, шедуллинг, понятный Lifecycle, простые кастомизации, RBAC, и вообще все что нужно для подобного рода системы. Так почему-бы не обучить его запускать виртуалки?
Хотя я тут заюзал терраформ обернутый в ансибл, терраформом создал сам кластер, у меня GKE, а дальше уже все мангипуляции с ним из ансибла и это в один запуск, можно даже output из терраформа использовать в качестве перемнных в ансибле