我想在一个节点(即)上使用一个挂载点,并为我将在集群中使用/data
的每个子文件夹设置一个不同的子文件夹。PersistentVolumeClaim
目前我有多个StorageClass
和PersistentVolume
每个子文件夹,例如:
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: prometheus
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: prometheus
labels:
type: local
spec:
storageClassName: prometheus
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
local:
path: "/data/prometheus"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: disk
operator: In
values:
- local
正如你所想象的那样,每个都有一个StorageClass
,一个看起来有点矫枉过正。PersistentVolume
PersistentVolumeClaim
我尝试使用单个StorageClass
和PersistentVolume
(仅指向 /data
),usePath
选项(即prometheus
)与多个PersistentVolumeClaim
. 但是我注意到,如果securityContext.fsGroupChangePolicy
启用该选项,它将将用户/组更改应用于卷的根目录(即/data
)而不是subPath
(即/data/prometheus
)。
有更好的解决方案吗?
谢谢
local-path-provisioner似乎是一个很好的解决方案