Concepts

Edit This Page

Node-specific Volume Limits

This page describes the maximum number of volumes that can be attached to a node for various cloud providers.

Cloud providers like Google, Amazon, and Microsoft typically have a limit on how many volumes can be attached to a node. It is important for Kubernetes to respect those limits. Otherwise, Pods scheduled on a node could get stuck waiting for volumes to attach.

Kubernetes default limits

The Kubernetes scheduler has default limits on the number of volumes that can be attached to a node:

Cloud serviceMaximum volumes per node
Amazon Elastic Block Store (EBS)39
Google Persistent Disk16
Microsoft Azure Disk Storage16

Custom limits

You can change these limits by setting the value of the KUBE_MAX_PD_VOLS environment variable, and then starting the scheduler.

Use caution if you set a limit that is higher than the default limit. Consult the cloud provider’s documentation to make sure that nodes can actually support the limit you set.

The limit applies to the entire cluster, so it affects all nodes.

Dynamic volume limits

FEATURE STATE: Kubernetes v1.11 alpha
This feature is currently in a alpha state, meaning:

  • The version names contain alpha (e.g. v1alpha1).
  • Might be buggy. Enabling the feature may expose bugs. Disabled by default.
  • Support for feature may be dropped at any time without notice.
  • The API may change in incompatible ways in a later software release without notice.
  • Recommended for use only in short-lived testing clusters, due to increased risk of bugs and lack of long-term support.

Kubernetes 1.11 introduces dynamic volume limits based on node type. This is an alpha feature that supports these services:

To enable dynamic volume limits, set the AttachVolumeLimit feature gate to True.

When the dynamic volume limits feature is enabled, Kubernetes automatically determines the node type and supports the appropriate number of attachable volumes for the node. For example: