<p>I have a GKE cluster which doesn't scale up when a particular deployment needs more resources.
I've checked the cluster autoscaler logs and it has entries with this error:
<code>no.scale.up.nap.pod.zonal.resources.exceeded</code>. The <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-autoscaler-visibility#noscaleup-reasons" rel="nofollow noreferrer">documentation</a> for this error says:</p>
<blockquote>
<p>Node auto-provisioning did not provision any node group for the Pod in
this zone because doing so would violate resource limits.</p>
</blockquote>
<p>I don't quite understand which resource limits are mentiond in the documentation and why it prevents node-pool from scaling up?</p>
<p>If I scale cluster up manually - deployment pods are scaled up and everything works as expected, so, seems it's not a problem with project quotas.</p>

<ul>
<li><p><a href="https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#limits_for_clusters" rel="nofollow noreferrer">Limits for clusters</a> that you define are enforced based on the total CPU and memory resources used across your cluster, not just auto-provisioned pools.</p>
</li>
<li><p>When you are not using node auto provisioning (NAP), <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#disable" rel="nofollow noreferrer">disable node auto provisioning feature for the cluster.</a></p>
</li>
<li><p>When you are using NAP, then <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#enable" rel="nofollow noreferrer">update the cluster wide resource</a> limits defined in NAP for the cluster .</p>
</li>
<li><p>Try a workaround by specifying the <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#custom_machine_family" rel="nofollow noreferrer">machine type explicitly</a> in the workload spec. Ensure to use a supported machine family with GKE node auto-provisioning</p>
</li>
</ul>
