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