管理卷
前提条件
-
正在运行的 DirectPV 插件。
要安装插件,请参考 插件安装指南。
-
在 Kubernetes 中运行 DirectPV CSI 驱动程序。
要安装驱动程序,请参考 驱动程序安装指南。
-
在 DirectPV 中添加的驱动器。
参考 驱动器管理指南。
添加卷
参考 卷配置指南。
列出卷
要获取 DirectPV 中卷的信息,请运行 list volumes
命令。输出类似于以下内容
$ kubectl directpv list drives
┌────────┬──────┬──────┬─────────┬─────────┬─────────┬────────┐
│ NODE │ NAME │ MAKE │ SIZE │ FREE │ VOLUMES │ STATUS │
├────────┼──────┼──────┼─────────┼─────────┼─────────┼────────┤
│ master │ vdb │ - │ 512 MiB │ 506 MiB │ - │ Ready │
│ node1 │ vdb │ - │ 512 MiB │ 506 MiB │ - │ Ready │
└────────┴──────┴──────┴─────────┴─────────┴─────────┴────────┘
扩展卷
DirectPV 支持在线卷扩展,无需重启使用这些卷的 Pod。这在为相关 Persistent Volume Claim
(PVC) 扩展大小后自动完成。
-
获取 PVC YAML
kubectl get pvc [PersistentVolumeClaimName] -o yaml > my-file-name.yaml
-
在 PVC 中,修改
spec.resources.requests.storage
以更改请求的大小。 -
将更新后的 PVC 应用到 Kubernetes 环境,例如使用
kubectl apply
。应用更改后,PVC 会更新,DirectPV 会自动增加分配给该声明的卷的大小。
-
使用
kubectl get pvc [PersistentVolumeClaimName] -o yaml
验证更改查看
status.capacity.storage
以查看更新的大小。
删除卷
仅当没有 Pod 使用卷并且卷处于 Ready
状态时,才能删除卷。运行 kubectl delete pvc
命令以触发 DirectPV 卷删除。删除卷会导致永久性数据丢失。请务必确认您要删除的卷。
# Delete `sleep-pvc` volume
kubectl delete pvc sleep-pvc
清理陈旧的卷
当 Pod 和/或 Persistent Volume Claim 被强制删除时,相关的 DirectPV 卷可能会被遗留下来,导致卷变得陈旧。运行 clean
命令可以删除陈旧的卷。
$ kubectl directpv clean --all
挂起卷
根据 Kubernetes 的设计,StatefulSet 工作负载只有在所有 Pod 都处于运行状态时才会处于活动状态。故障的卷会阻止 StatefulSet 启动。
DirectPV 提供了一种解决方法,通过将失败的卷挂载到空目录 /var/lib/directpv/tmp
上,并以只读方式访问,来挂起失败的卷。这可以通过执行 挂起卷 命令来完成。
kubectl directpv suspend volumes --nodes node-1 --drives dm-3
挂起的卷可以在修复后恢复。恢复后,相应的卷将恢复使用各自分配的驱动器。
这可以通过使用 [恢复卷](/command-line/resume-volumes/) 命令来完成。
kubectl directpv resume volumes --nodes node-1 --drives dm-3