一、卷数限制
不同的云供应商通常对可以关联到一个节点的卷数量进行限制,这些限制是由云供应商实施的,并且Kubernetes必须遵守这些限制。如果超过了云供应商的限制,可能会导致Pod调度失败或卡住等待卷的关联。
例如谷歌、亚马逊和微软等云供应商在其文档中提供了有关节点上可以关联的卷数量的信息。因此,如果您在节点上使用多个卷,并且尝试将更多的卷关联到节点上,而这超过了云供应商的限制,可能会导致Pod无法成功调度或卡住等待卷的关联。
为了避免这种情况,建议在创建和调度Pod时始终检查云供应商的文档,了解节点上可以关联的卷数量限制,并确保在这些限制范围内操作。这样可以确保Pod能够成功调度并与所需的卷关联。
二、Kubernetes默认限制
Kubernetes 调度器对关联于一个节点的卷数有默认限制:
三、自定义限制
可以使用环境变量KUBE_MAX_PD_VOLS来自定义整个集群中节点上可以关联的卷数量限制。这个环境变量需要在调度器启动时进行设置。请注意,如果您将这个环境变量设置得太高,可能会对系统性能产生负面影响。因此,请谨慎调整这个限制并确保它不超过云供应商的默认限制。此限制是应用于整个集群的,这意味着这个设置将会影响到所有节点
四、动态卷限制
以下卷类型支持动态卷限制。
1、Amazon EBS
2、Google Persistent Disk
3、Azure Disk
4、CSI
对于由内建插件管理的卷,Kubernetes会根据不同的云服务提供商和节点类型自动确定可以在节点上关联的卷数量。以下是一些示例:
- 在Google Compute Engine环境中,在根据节点类型的限制下,最多可以将127个卷关联到节点。
- 对于Amazon Elastic Compute Cloud (EC2)环境中的M5、C5、R5、T3和Z1D类型实例的Amazon EBS磁盘,Kubernetes仅允许将25个卷关联到节点。对于其他实例类型,Kubernetes允许将39个卷关联到节点。
- 在Azure环境中,根据节点类型,最多可以将64个磁盘关联到一个节点。
- 如果使用CSI(Container Storage Interface)存储驱动程序,并且该驱动程序通过NodeGetInfo报告了卷数量上限,那么kube-scheduler将遵守该限制值。
- 对于由已迁移到CSI驱动程序的内建插件管理的卷,最大卷数将取决于CSI驱动程序报告的卷数。