Quotas and limits

This page explains the quotas and limits for Google Kubernetes Engine (GKE) clusters, nodes, and GKE API requests.

GKE's per-project limits are:

GKE's per-cluster limits are:

  • Maximum of 5,000 nodes per cluster in GKE releases up to 1.17.
  • Maximum of 15,000 nodes per cluster as of GKE version 1.18, but running above 5,000 nodes requires lifting a cluster size quota. Contact support for help.
  • Maximum of 1,000 nodes per node pool zone.
  • If using Instance Group-based Ingress then there is a limit of 1,000 nodes in a zone per cluster. However, container-native load balancing with NEG-based Ingress has no node limitations and is recommended whenever possible. In GKE version 1.17 or later NEG-based Ingress is the default mode.
  • Maximum of 110 Pods per node.
  • Maximum of 150,000 Pods and 300,000 containers per cluster.

The rate limit for the Kubernetes Engine API is 10 requests per second.

In addition to per-cluster and per-project limits, specific GKE features have additional limits. For more information, refer to documentation for the features you use.

You might also encounter Compute Engine resource quotas. Additionally, for projects with default regional Compute Engine CPUs quota, container clusters are limited to three per region.

Resource quotas

Starting with GKE version 1.12.5, a set of resource quotas is automatically applied to clusters with five nodes or fewer and to Namespaces on those clusters. These quotas, which cannot be removed, protect the cluster's control plane from instability caused by potential bugs in applications deployed to the cluster. To examine these quotas, use the kubectl get resourcequota gke-resource-quotas -o yaml command. To view the gke-resource-quotas object for a given Namespace, specify the Namespace by adding the --namespace option.

Starting August 26, 2019, a set of resource quotas is automatically applied to clusters with ten nodes or fewer and to Namespaces on those clusters. These quotas, which cannot be removed, protect the cluster's control plane from instability caused by potential bugs in applications deployed to the cluster. To examine these quotas, use the kubectl get resourcequota gke-resource-quotas -o yaml command. To view the gke-resource-quotas object for a given Namespace, specify the Namespace by adding the --namespace option.