服了气,大家的subpath都是粘贴的= =
参考资料:https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath
尝试pvc挂载时,subpath总结:
1、不加subPath:会挂载到mountPath,mountPath下内容不会覆盖
2、subPath=mountPath:会报错
3、subPath=任意非卷中的子路径:会在卷中创建文件夹(应该与pvc是读写模式有关?)
4、subPath=卷中的子路径:会挂载卷中子路径到mountPath
什么是卷中子路径
比如按下面例子创建pvc(pvc是基于storageclass动态创建),这时系统会帮我们自动创建pv,我们describe pv时候会找到pv映射的本地盘路径
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test
namespace: abc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
storageClassName: local-path
volumeMode: Filesystem
然后我们去本地盘路径执行以下命令:
touch abc.txt
mkdir hello
touch hello/world.txt
这时我们挂载的时候:
- 如果subpath不写,则挂载全部内容
- 如果subpath写成
hello
,则会挂载hello文件夹里面的内容到mountpath下