动态卷供应
动态卷供应的实现基于 API 组中的 StorageClass
API 对象。 集群管理员可以根据需要定义多个 StorageClass
对象,每个对象指定一个卷插件(又名 provisioner), 卷插件向卷供应商提供在创建卷时需要的数据卷信息及相关参数。
集群管理员可以在集群中定义和公开多种存储(来自相同或不同的存储系统),每种都具有自定义参数集。 该设计也确保终端用户不必担心存储供应的复杂性和细微差别,但仍然能够从多个存储选项中进行选择。
点击这里查阅有关存储类的更多信息。
以下清单创建了一个 “fast” 存储类,它提供类似 SSD 的永久磁盘。
用户通过在 PersistentVolumeClaim
中包含存储类来请求动态供应的存储。 在 Kubernetes v1.9 之前,这通过 注解实现。然而,这个注解自 v1.6 起就不被推荐使用了。 用户现在能够而且应该使用 PersistentVolumeClaim
对象的 storageClassName
字段。 这个字段的值必须能够匹配到集群管理员配置的 StorageClass
名称(见)。
例如,要选择 “fast” 存储类,用户将创建如下的 PersistentVolumeClaim:
可以在集群上启用动态卷供应,以便在未指定存储类的情况下动态设置所有声明。 集群管理员可以通过以下方式启用此行为:
- 确保 DefaultStorageClass 准入控制器在 API 服务端被启用。
管理员可以通过向其添加 storageclass.kubernetes.io/is-default-class
注解来将特定的 StorageClass
标记为默认。 当集群中存在默认的 并且用户创建了一个未指定 storageClassName
的 PersistentVolumeClaim
时, DefaultStorageClass
准入控制器会自动向其中添加指向默认存储类的 storageClassName
字段。
请注意,集群上最多只能有一个 默认 存储类,否则无法创建没有明确指定 storageClassName
的 PersistentVolumeClaim
。