把 K8S 上的通过 ceph 挂载的资源映射到本地(pv 资源与 ceph 的对应关系)

例子

cat filesystem-pvc.yaml 
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: filesystem-rbd-pvc
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 1Gi
  storageClassName: csi-rbd-sc

# 创建 pvc
kubectl apply -f filesystem-pvc.yaml 

cat filesystem-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: filesystem-rbd-pvc
        readOnly: false
# 创建 pod
kubectl apply -f filesystem-pod.yaml

# 写入文件
kubectl exec -it csi-rbd-demo-pod -- /bin/bash 
cd /var/lib/www/html/

echo "klvchen" > 1.txt
exit

找到 k8s pv 资源与 ceph 的对应关系

kubectl get pv

kubectl describe pv pvc-4f6c05e4-42e1-4b6e-bfc5-31029959c9ef

映射块设备

# 在 ceph 几点上操作
ceph osd lspools

# 找到对应的设备
rbd -p kubernetes ls |grep csi-vol-2ee1a316-ffec-11eb-a963-2e71785a8af5

rbd device map kubernetes/csi-vol-2ee1a316-ffec-11eb-a963-2e71785a8af5 
# 自动映射到 /dev/rbd1

# 挂载
mkdir /tmp/test
mount /dev/rbd1 /tmp/test

# 在 /tmp/test 找到 1.txt
ll /tmp/test/1.txt

卸载挂载点

# 查看映射的块存储
rbd device list

# 卸载挂载点
umount /tmp/test
rbd unmap /dev/rbd1

posted @ 2021-08-20 14:01  klvchen  阅读(317)  评论(0)    收藏  举报