kubernetes - 如何找到正确的 devicePaths 以用于 Openshift 持久卷的本地存储?
问题描述
我看过为本地存储创建自定义资源的文档:https ://docs.openshift.com/container-platform/4.5/storage/persistent_storage/persistent-storage-local.html#local-volume-cr_persistent-storage-当地的
但不确定如何填充该spec.storageClassDevices.devicePaths
字段。
我已经lsblk
在我的一个节点中尝试了该命令并得到了以下响应:
sh-4.4# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 250G 0 disk
|-vda1 252:1 0 384M 0 part /boot
|-vda2 252:2 0 127M 0 part /boot/efi
|-vda3 252:3 0 1M 0 part
`-vda4 252:4 0 249.5G 0 part
`-coreos-luks-root-nocrypt 253:0 0 249.5G 0 dm /sysroot
vdb 252:16 0 200G 0 disk
vdc 252:32 0 200G 0 disk
解决方案
在Linux和其他类 Unix系统上,您的块设备在文件系统中表示为文件,因此每个块设备都有其唯一的路径,与常规文件相同。
lsblk
您可以运行命令而不是运行df
,该命令将向您显示这些路径,但它只会向您显示已安装的设备。
系统上的所有块设备都以开头,vd
因此您可以简单地运行:
ls -l /dev/vd*
将它们全部列出。
所以如果你想挂载你的vdb
和vdc
磁盘,值spec.storageClassDevices.devicePaths
将是/dev/vdb
和/dev/vdc
:
spec:
...
storageClassDevices:
- storageClassName: "local-sc"
volumeMode: Filesystem
fsType: xfs
devicePaths:
- /dev/vdb
- /dev/vdc
推荐阅读
- android - 'where' is not recognized as an internal or external command, operable program or batch file. Error: Unable to find git in your PATH
- java - Spring security oauth2 login url 404
- c# - Entity Framework Core: No parameterless constructor defined for this dbcontext
- python - Python 版本依赖类型注解
- javascript - Firebase 登录 - 检查电子邮件是否在使用中
- blockchain - 使用 truffle 为 Solidity Ethereum 测试智能合约时出错
- stata - 不包括 NA 编码变量的百分比变化 (Stata)
- reactjs - React Jest/Enzyme - 快照创建的文件太大(数千行)/从快照中删除属性
- java - XYChart 数据:按对象类型编译交易金额
- r - 将 ggplot 多面栅格地图与单个地图对齐(单独的图例)