使用 LocalVolumeSet 进行配置
LocalVolumeSet 会根据匹配筛选条件的设备配置 PersistentVolume。如果不存在由 spec.storageClassName 指定名称的 StorageClass,operator 会创建该 StorageClass。
当磁盘应根据大小、类型或类似属性声明,而不是通过显式路径列表声明时,请使用 LocalVolumeSet。有关精确路径,请参阅使用 LocalVolume 进行配置。
请谨慎使用 LocalVolumeSet。当 operator 根据本地磁盘配置 PersistentVolume 时,它可能会声明所有匹配 deviceInclusionSpec 的设备。Alauda Container Platform Local Disk Provisioner 必须是节点上唯一管理这些磁盘的组件。不要创建多个选择同一节点的 LocalVolumeSet。如果必须限制每个节点配置的设备数量,请设置 maxDeviceCount。
LocalVolumeSet 不支持逻辑卷管理(LVM)设备。不要将其指向 LVM 卷。对于由 LVM 支持的动态卷,请使用 LVM Storage。
前提条件
- 已安装 Alauda Container Platform Local Disk Provisioner。请参阅安装。
- 设备发现正在运行,以便确认哪些磁盘是
Available。请参阅发现本地磁盘。 - 匹配的设备已连接、未挂载,并且在选择整个磁盘时没有子分区。
配置 Block 卷
此示例会创建名为 localblock 的 Block StorageClass,并根据匹配的整个磁盘创建 PersistentVolume。
在控制平面节点上:
- 安装 Alauda Container Platform Local Disk Provisioner 的命名空间。默认值为
acp-storage。 - 用于配置 PersistentVolume 的 StorageClass。如果不存在,operator 会创建该 StorageClass。请使用能够唯一标识此集合的名称。
Block或Filesystem。对于 Ceph OSD 消费和其他原始设备用户,请使用Block。- 可选。每个节点配置的匹配设备的最大数量。如果省略,则会声明所选节点上的每个匹配设备。
- 可选。运行匹配的节点。请从
kubectl get node获取主机名。如果省略,则会在每个节点上运行匹配。 - 要包含的设备类型:
disk、part、loop或mpath。如果列表为空,则只选择disk。不支持 LVM 设备。
可选的 deviceInclusionSpec 筛选条件:
如果 MODEL 或 VENDOR 为空(Virtio 和许多云磁盘中很常见),请不要设置 models 或 vendors。这些筛选条件不会匹配空字符串。
验证 PersistentVolume:
示例输出:
如果之后插入的磁盘匹配筛选条件,并且 maxDeviceCount 仍允许配置,则会自动为其配置。
绑定 PersistentVolumeClaim
在将使用该卷的项目中创建声明。对于 Block 卷,请设置 volumeMode: Block。请求不得超过设备容量。
- 必须与
LocalVolumeSetvolumeMode匹配。 - 必须小于或等于 PersistentVolume 容量。
- 必须与
spec.storageClassName匹配。
确认声明已绑定:
添加磁盘或节点
- 添加磁盘:在选定的节点上连接与
deviceInclusionSpec匹配的磁盘。当磁盘为Available且未超过maxDeviceCount时,operator 会配置 PersistentVolume。无需编辑路径列表。 - 添加节点:在
LocalVolumeSet以及清点该节点的LocalVolumeDiscovery上,将主机名添加到spec.nodeSelector中。请参阅发现本地磁盘。