Pod and Volume Limits

This documentation is for Dash Enterprise.
Dash Enterprise is the fastest way to write & deploy Dash apps and
Jupyter notebooks.
10% of the Fortune 500 uses Dash Enterprise to productionize AI and
data science apps. Find out if your company is using Dash Enterprise.

Configuring pod and volume limits is an administrator action and requires the admin role.

Dash Enterprise apps, workspaces, and Redis and Postgres services create pods and volumes (PVCs) on your Kubernetes cluster.
There are pod and volume limits on your cluster and you’ll need to configure these in Dash Enterprise.

When creating apps, workspaces, or services in Dash Enterprise,
you’ll receive a Nearing System Limits warning once either your pod or volume numbers reach 80% of the limits you’ve configured.

<img>

In this case, you can reduce usage of pods and volumes across your cluster by pausing apps or
deleting apps, workspaces, or services.

If you continue to create apps, workspaces, or services,
you’ll eventually reach a hard limit, and creation will be disabled until you take action.

Note: You may notice the numbers for created pods or PVCs in the Nearing System Limits warning are greater than the limits set.
This can happen when they are created by the system temporarily and haven’t been cleaned up yet. For example, pods that are responsible for building apps only exist for as long as the build is in progress.

Calculating Pod and Volume Limits

Single Server

When Dash Enterprise is installed on a single server, the pod and volume limits that you need to set are based on the size of the server:

Skip to Configuring Pod and Volume Limits.

Multi-node

When Dash Enterprise is installed on a multi-node cluster, the pod and volume limits that you need to set are based on the cloud provider.

Pod and volume limits are configured as cluster-wide limits. Your pod limit for your cluster is the sum
of the maximum allowed pods for each node. Similarly, your volume limit is
the sum of the maximum allowed volumes for each node.
Limits differ depending on your cloud provider, and there are different limits for pods and for volumes per node.

You can also configure lower limits than what your cloud provider allows if you want to limit the number of apps
deployed to reduce the likelihood of running out of memory.

Note: The limits outlined below are theoretical limits. We recommend setting limits to 80% of the maximum values
to allow for unbalanced scheduling (see the limitations section below).

Amazon Elastic Kubernetes Service

Pod limits

The maximum number of pods allowed per node on EKS can be up to 737. The maximum for a node
depends on the instance type of the node. The default instance type for Dash Enterprise, m6i.2xlarge, allows up to 58. If you have 4 nodes,
each with a maximum of 58 pods, your cluster-wide pod limit is 232.
See Maximum number of nodes per instance type
for more details.

Volume (PVC) limits

Amazon Elastic Block Store (EBS)
allows up to 39 volumes per node. If you have 4 nodes, each with a maximum of 39 volumes,
your cluster-wide PVC limit is 156.

Azure Kubernetes Service

Pod limits

On AKS, the Dash Enterprise infrastructure provisioning script sets a maximum of 250 pods per node by default. You may have a different maximum if you have installed Dash Enterprise using a customized infrastructure provisioning script.
To get the pod limit for your cluster, add the configured pod limits for each node.
If you have 4 nodes, each with a limit of 250 pods, your cluster-wide pod limit is 1000.
You’ll find full details on AKS limits in the official docs.

Volume (PVC) Limits

Microsoft Azure Disk Storage
allows up to 16 volumes per node. If you have 4 nodes, each with a maximum of 16 volumes,
your cluster-wide PVC limit is 64.

Google Kubernetes Engine

Pod limits

On GKE, you can have up to 110 pods per node (unless you have installed Dash Enterprise using a customized
infrastructure provisioning script). If you have 4 nodes, each with a maximum of 110 pods, your cluster-wide pod limit is 440.
See the quotas and limits in the GKE docs
for full details on pod limits per node.

Volume (PVC) limits

Google Persistent Disk with dynamic volume limits allows
up to 127 volumes per node. If you have 4 nodes, each with a maximum of 127 volumes,
your cluster-wide PVC limit is 508.

Configuring Pod and Volume Limits

To configure pod and volume limits:

  1. In the Dash Enterprise App Manager, go to Settings. Remember that you need the admin role to be able to access these settings.
  2. Go to System Limits and select Edit System Limits.
  3. Enter the limits you calculated for your cluster for pods and PVCs (volumes) and select Save.

    <img>

Reaching Limits

If you have apps that aren’t being used, stop them to free up pods.
You can check the last time an app was updated to see it’s still being developed,
or the last time it was viewed to see if it’s still being used,
and reach out to the app’s owner to see if the app is still needed.

You’ll find last updated and last viewed information under each app name in the list of All Apps at https://&lt;your-dash-enterprise-server&gt;/apps.

<img>

You can sort the list of apps by least recently viewed or the last updated date.

If you no longer need apps, workspaces, or services associated with an app,
deleting them frees up pods and volumes.

When Pods Are Created

When Volumes Are Created

Limitations

Pod and volume limits set in Dash Enterprise are cluster-wide limits.
In multi-node installations, setting limits per node is not currently supported.
If scheduling across nodes is unbalanced, you may exceed per-node limits
and this won’t be detected by Dash Enterprise.

Because scheduling can be unbalanced across nodes in multi-node installations,
we recommend setting the pod and PVC limits to be 80% of the theoretical cluster-wide maximum.