How do I autostart Jenkins agent machines? To save money, I would like a large number of agent machines to be stopped and started up only when needed. Better yet, a single  VM should be copied and launched on demand.

I am using Google Cloud Platform.

I see the  Kubernetes plugin, used in Jenkins X, as well as the  VirtualBox Plugin, but I get the sense that Jenkins might not be designed for this. 

What is the standard way, if any, to do this?
We use AWS's EC2 Plugin to spin up spot instances in AWS for our Jenkins master based on a single AMI, exactly as you describe, so Jenkins does support this behavior.

From a quick bit of searching Google Cloud seems to offer a similar solution; 


  Spotinst’s Jenkins Plugin helps you to do more with your Jenkins setup by allowing you to automatically configure and scale a designated Google Compute Engine Preemptible VM as Slaves up and down depending on the number jobs to be completed.