Quotas and limits

Stay organized with collections Save and categorize content based on your preferences.

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

Limits per project

The limits per GKE project are:

Note: Clusters created in the Autopilot mode are pre-configured as regional clusters.

Limits per cluster

The limits per GKE cluster are:

Limits GKE Standard cluster GKE Autopilot cluster
Nodes per cluster 15,000

Note: If you plan to run more than 2,000 nodes, use a regional cluster.

Note: Running more than 5,000 nodes requires lifting a cluster size quota. Contact support for assistance.

1,000

Note: Running more than 400 nodes requires lifting a cluster size quota. Contact support for assistance.

Nodes per node pool zone 1,000 Not applicable
Nodes in a zone
  • No node limitations for container-native load balancing with NEG-based Ingress, which is recommended whenever possible. In GKE versions 1.17 and later, NEG-based Ingress is the default mode.
  • 1,000 if you are using Instance Group-based Ingress.
Not applicable
Pods per node2 256

Note: For GKE versions earlier than 1.23.5-gke.1300, the limit is 110 Pods.

32
Pods per cluster1 2 200,000 12,000
Containers per cluster 400,000 24,000
Endpoints per service
  • 10,000 for:
    • GKE 1.22 and later versions when not using GKE Dataplane V2.
    • GKE 1.24 and later versions when using GKE Dataplane V2.
  • 1,000 otherwise.

The GKE version requirement applies to both the nodes and the control plane.

Learn more about relevant limits and quotas in the Guidelines for creating scalable clusters.

Limit for API requests

The default rate limit for the Kubernetes Engine API is 3000 requests per min, enforced at intervals of every 100 seconds.

Additional limits and quotas

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.

Resource quotas

A set of resource quotas is automatically applied to clusters with 100 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 resource quotas, use the following command:

kubectl get resourcequota gke-resource-quotas -o yaml

To view the gke-resource-quotas object for a given namespace, specify the namespace by adding the --namespace option.

These resource quotas increase as more nodes are added to the cluster, up to 100 nodes. When the cluster exceeds 100 nodes, the resource quota object is removed, and your cluster has unlimited quotas.

If you try to examine the resource quotas again, the output is similar to the following:

Error from server (NotFound): resourcequotas "gke-resource-quotas" not found.

Once the cluster exceeds 100 nodes, the quotas are not reapplied if the number of nodes scale back down below 100.

Notes

  1. The maximum number of pods includes system pods. The number of system pods varies depending on cluster configuration and enabled features.

  2. The maximum number of Pods that can fit in a node depends on the size of your Pod resource requests and the capacity of the node. You might not reach every limit at the same time. As a best practice, we recommend that you load test large deployments.