kubernetes 如何装载ceph-csi调配的块卷?[已关闭]

xtfmy6hx  于 2023-04-05  发布在  Kubernetes
关注(0)|答案(1)|浏览(166)

**已关闭。**此问题为not about programming or software development。当前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题有关,您可以留下评论,说明在何处可以回答此问题。
昨天关门了。
Improve this question
我有一个像下面这样的PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: raw-block-pvc
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Block
  resources:
    requests:
      storage: 1Gi
  storageClassName: csi-rbd-sc

它由ceph-csi插件提供。如您所见,它将在Pod中作为块设备执行。Pod定义如下:

---
apiVersion: v1
kind: Pod
metadata:
  name: pod-with-raw-block-volume
spec:
  containers:
    - name: fc-container
      image: nginx
      volumeDevices:
        - name: data
          devicePath: /dev/xvda
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: raw-block-pvc

我可以在/dev/xvda找到它。
但是当我尝试通过mount /dev/xvda /mnt将其挂载到目录时,它失败并显示以下内容:
mount: /mnt: cannot mount /dev/xvda read-only.
谁能告诉我原因是什么?

jutyujz0

jutyujz01#

当您在pvc中声明volumeMode为block时,这是一个原始块设备,/dev/xvda是与您的Linux硬盘相同的块设备。您不能挂载一个原始块设备,它没有格式化,上面没有文件系统。如果您想将存储附加到目录,您可以云声明文件系统volumemode。这里是一个示例,更多细节您可以访问https://docs.ceph.com/en/latest/rbd/rbd-kubernetes/

$ cat <<EOF > pvc.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: rbd-pvc
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 1Gi
  storageClassName: csi-rbd-sc
EOF
$ kubectl apply -f pvc.yaml

$ cat <<EOF > pod.yaml
---
apiVersion: v1
kind: Pod
metadata:
  name: csi-rbd-demo-pod
spec:
  containers:
    - name: web-server
      image: nginx
      volumeMounts:
        - name: mypvc
          mountPath: /var/lib/www/html
  volumes:
    - name: mypvc
      persistentVolumeClaim:
        claimName: rbd-pvc
        readOnly: false
EOF
$ kubectl apply -f pod.yaml

相关问题