例子
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