<p>I have a Google Kubernetes Engine cluster that runs pods of several environments (dev, pre, pro). In order to reduce costs I would like to stop some nodes during the night, and keep only the necessary to run production pods. Then in the morning I want to upscale the nodes and start the dev/pre pods.</p>

<p><strong>Peak Hours</strong></p>

<pre><code>Node1 -&gt; ProdPod1 DevPod1
Node2 -&gt; ProdPod2 PrePod1
  .
  .
NodeN -&gt; DevPod2 ProdPod3
</code></pre>

<p><strong>Valley Hours</strong></p>

<pre><code>Node1 -&gt; ProdPod1 ProdPod2 ProdPod3
</code></pre>

<p>Does GKE provide some way of programming this downscaling/upscaling of nodes and pods? If not how could it be done?</p>

codependent
<p>I would also add that if you want to save money, and if your dev pods can tolerate some downtime, you'd want to look at using <a href="https://cloud.google.com/preemptible-vms/0" rel="nofollow noreferrer">preemptible or spot instances</a>.  Some good insights <a href="https://medium.com/google-cloud/using-preemptible-vms-to-cut-kubernetes-engine-bills-in-half-de2481b8e814" rel="nofollow noreferrer">here</a></p>
