发现本地磁盘
LocalVolumeDiscovery 会清点集群节点上未使用的块设备,并为每个节点写入一个 LocalVolumeDiscoveryResult 对象。使用结果为 LocalVolume 选择设备路径,或为 LocalVolumeSet 选择过滤器。
发现操作不会创建 PersistentVolumes、StorageClasses 或文件系统。具有 status.state: Available 的设备可用于配置。它不是 PersistentVolume。
前提条件
- 已安装 Alauda Container Platform Local Disk Provisioner。请参阅安装。
- 您可以对集群运行
kubectl。
检查是否已存在发现对象
安装 Alauda Container Platform Local Disk Provisioner 后,如果同时安装了 Alauda Container Platform Storage Essentials 且尚不存在 LocalVolumeDiscovery,平台会在 acp-storage 中创建一个名为 auto-discover-devices 的 LocalVolumeDiscovery。
在控制平面节点上:
如果列出了 auto-discover-devices,请勿创建其他对象。在下一节中检查结果。若要限制扫描的节点,请编辑该对象上的 spec.nodeSelector。
创建 LocalVolumeDiscovery
仅当 acp-storage 中不存在 LocalVolumeDiscovery 时,才创建一个该对象。
- 可选。运行发现操作的节点。请从
kubectl get node获取主机名。如果省略,发现操作将在每个节点上运行。 - 可选。传递给发现 DaemonSet 的容忍度。
operator: Exists匹配每个污点。
检查发现结果
在控制平面节点上:
示例输出:
每个选定的节点都会获得一个 LocalVolumeDiscoveryResult。在一个节点上检查设备:
在 LocalVolume 中使用 status.discoveredDevices[].deviceID(一个 /dev/disk/by-id/... 路径)作为稳定路径。不要使用 path 值(例如 /dev/sdb 或 /dev/disk/by-path/...)。节点重启后,这些名称可能会发生变化。
status.discoveredDevices[].status.state 的值为以下之一:
列表中的设备不可移除、不是只读设备、未挂载、不是启动磁盘,并且没有子分区。发现操作仍然不会创建卷。
后续步骤
- 使用 LocalVolume 为列出的路径配置资源。
- 使用 LocalVolumeSet 为匹配的磁盘配置资源。