Overview

This topic summarizes the limits for objects in OpenShift Origin.

In most cases, exceeding these thresholds results in lower overall performance. It does not necessarily mean that the cluster will fail.

Some of the limits represented in this topic are given for the largest possible cluster. For smaller clusters, the limits are proportionally lower.

There are many factors that influence the stated thresholds, including the etcd version or storage data format.

OpenShift Origin 3.7 Cluster Limits

Limit Type Current Limit

Number of nodes [1]

2,000

Number of pods

120,000

Number of pods per node

250

Number of pods per core

10 is the default value. The maximum supported value is the number of pods per node.

Number of namespaces

10,000

Number of pods per namespace [2]

15,000

Number of services [3]

10,000

Number of back-ends per service

5,000

Number of deployments per namespace [2]

20,000

Planning Your Environment According to Cluster Limits

Oversubscribing the physical resources on a node affects resource guarantees the Kubernetes scheduler makes during pod placement. Learn what measures you can take to avoid memory swapping.

While planning your environment, determine how many pods are expected to fit per node:

Maximum Pods per Cluster / Expected Pods per Node = Total Number of Nodes

The number of pods expected to fit on a node is dependent on the application itself. Consider the application’s memory, CPU, and storage requirements.

Example Scenario

If you want to scope your cluster for 2200 pods per cluster, you would need at least nine nodes, assuming that there are 250 maximum pods per node:

2200 / 250 = 8.8

If you increase the number of nodes to 20, then the pod distribution changes to 110 pods per node:

2200 / 20 = 110

1. Having clusters with more than 5000 nodes is not the best option. Consider splitting into multiple clusters.
2. There are a number of control loops in the system that need to iterate over all objects in a given namespace as a reaction to some changes in state. Having a large number of objects of a given type in a single namespace can make those loops expensive and slow down processing given state changes.
3. Each service port and each service back-end has a corresponding entry in iptables. The number of back-ends of a given service impact the size of the endpoints objects, which impacts the size of data that is being sent all over the system.