问题描述
我正在探索 voluemsnapshots 并使用快照作为源创建 PVC。 我观察到一件事,我有一个卷模式设置为文件系统的 PVC。我尝试创建该 PVC 的卷快照,结果很好。 之后,使用该volumenapshot,我尝试创建一个将volumeMode 设置为Block 的PVC。它被创建,我可以附加到 pod A。在 pod A 中,我尝试将设备安装在某个目录上,我可以看到文件系统 PVC 中的所有数据。
这听起来对吗?
如果我们尝试将 Filesystem volumeMode PV 与 Block volumeMode PVC 一起使用,那么这是不允许的(因为在绑定操作中不会发生)。但是使用volumesnapshot可以实现相同的效果,对吗?
这是我的文件系统 volumemode PVC(模式未设置但默认为文件系统)(使用 ext4/xfs 文件系统)
piVersion: v1
kind: PersistentVolumeClaim
Metadata:
name: fs-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: csi-gce-pd
resources:
requests:
storage: 2Gi
这是我的卷快照 yaml
apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshot
Metadata:
name: fs-snapshot
spec:
source:
persistentVolumeClaimName: fs-pvc
这是我使用 volumenapshot fs-snapshot
piVersion: v1
kind: PersistentVolumeClaim
Metadata:
name: block-pvc
spec:
dataSource:
name: fs-snapshot
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
volumeMode: Block
storageClassName: csi-gce-pd
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
如果我尝试将其与以下 pod 一起使用,
apiVersion: v1
kind: Pod
Metadata:
name: simple
spec:
volumes:
- name: vol
persistentVolumeClaim:
claimName: block-pvc
containers:
- command:
- /bin/sh
- -c
- sleep 36000000
image: ubuntu
imagePullPolicy: IfNotPresent
name: ubuntu
volumeDevices:
- devicePath: /dev/any
name: vol
securityContext:
privileged: true
现在,在 pod 中,如果我执行 mount /dev/any /tmp
,那么我可以看到 fs-pvc
(文件系统模式 PVC)中的所有数据,并且设备 /dev/any
与fs-pvc
中存在的相同文件系统。就我而言,它是 ext4。
这是错误的还是支持的?如果它受支持,那么它可以特定于 CSI 实现吗?我正在使用 GCE PD csi 驱动程序。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)