<p>Does GKE supports vertical node auto-scaling?</p>
<p><em>For example:</em></p>
<p>I have a <a href="https://cloud.google.com/kubernetes-engine" rel="nofollow noreferrer">GKE cluster</a> with only one <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools" rel="nofollow noreferrer">node-pool</a> and two nodes that node-pool, in case there is a requirement for more memory or CPU by any pod, I do not want any other nodes / compute instances to be created, is there a way in which the configuration of existing nodes change and extra memory / CPU get added?</p>
<p>Basically, existing instances / nodes get upgraded to become instances with higher configuration.</p>

<p>I'm afraid that Google Cloud does not provide feature you want.</p>
<p>There is no way to add CPU/RAM in current <code>node pool VMs</code> as nodes used in <a href="https://cloud.google.com/kubernetes-engine" rel="nofollow noreferrer">Google Kubernetes Engine</a> are based on <a href="https://cloud.google.com/compute" rel="nofollow noreferrer">Google Compute Engine</a> Virtual Machines and resources are specified before creation. If you would like to change CPU/RAM resources in <code>node pool</code>, you need to do it manually as <code>@Emre Odabaş</code> pointed. However, all nodes must be recreated with higher resources availability.
To fulfill your needs you can choose which <a href="https://cloud.google.com/compute/docs/machine-types" rel="nofollow noreferrer">Machine Type</a> you want to use, however you can create <a href="https://cloud.google.com/custom-machine-types" rel="nofollow noreferrer">Custom Machine Type</a>.</p>
<p>As workaround you could consider to have 2 <code>node pools</code>:</p>
<p>one with regular <code>node-pool-1</code> with <code>e2-medium</code> (2 vCPU, 4GB Memory)</p>
<pre><code>$ gcloud container node-pools create node-pool-1 --machine-type=e2-medium --cluster=cluster-1 --zone=europe-north1-b ---num-nodes=2
</code></pre>
<p>and <code>node-pool-2</code> with <code>e2-standard-4</code> (4 vCPU, 16 GB Memory).</p>
<pre><code>$ gcloud container node-pools create node-pool-2 --machine-type=e2-standard-4 --cluster=cluster-1 --zone=europe-north1-b --num-nodes=0
</code></pre>
<p>However, this would work only when you would know that you do not have enough resources and change it manually:</p>
<ul>
<li>Regular load: 2 node from <code>node-pool-1</code></li>
<li>Higher load: 1 node from <code>node-pool-1</code> and 1 node from <code>node-pool-2</code></li>
<li>Full load: 2 nodes form <code>node-pool-2</code></li>
</ul>
