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.
The Kubernetes scheduler has default limits on the number of volumes that can be attached to a node:
|Cloud service||Maximum volumes per node|
|Amazon Elastic Block Store (EBS)||39|
|Google Persistent Disk||16|
|Microsoft Azure Disk Storage||16|
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.
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
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:
For Amazon EBS disks on M5/C5 instance types, Kubernetes allows only 25 volumes to be attached to a node. For other instance types on Amazon Elastic Compute Cloud (EC2), Kubernetes allows 39 volumes to be attached to a node.
On Azure, up to 64 disks can be attached to a node, depending on the node type. For more details, refer to Sizes for virtual machines in Azure.