在Pod中共享卷以供多方使用是很有用的。VolumeMounts.subPath属性可用于指定所引用的卷内的子路径,而不是其根路径
- 1个Pod中可以有多个容器,这里将不同容器的路径挂载在存储卷volume的子路径,这种场景需要使用到subpath;
- volume支持将configMap/secret挂载到容器的路径,但是会覆盖容器路径下原有的文件。如何支持选定configmap/secret的key-value挂载到容器中,且不会覆盖掉原目录下的文件,这个时候可以用subpath。
1、存储卷挂载
# 这里我们提前创建好一个PVC-CLAIM名称为pvc-subpath
[root@k8s001 subpath]# cat pvc.yaml
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-subpath
labels:
release: stable
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: /mnt/data # 这个是宿主机真实存在的目录
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-subpath
namespace: default
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
[root@k8s001 subpath]# kubectl ap