问题描述
在我的 k8s 上,我想运行 3 个具有相同 PV 的命名空间。目前我有一个命名空间设置,我该如何配置命名空间 2 和命名空间 3?
pv.yaml
apiVersion: v1
kind: PersistentVolume
Metadata:
name: efs-pv
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: efs-sc
csi:
driver: efs.csi.aws.com
volumeHandle: fs-<582a03f3>
claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
name: efs-claim
spec:
accessModes:
- ReadWriteMany
storageClassName: efs-sc
resources:
requests:
storage: 1Gi
storageclass.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
Metadata:
name: efs-sc
provisioner: efs.csi.aws.com
解决方法
PVC 可以通过设置 metadata.namespace 放在不同的命名空间中,但 PV 不能。 PVC 将预先绑定到具有相同名称的 PV。我的解决方案只是命名 PV&PVC 对,每个命名空间都不同,例如。 efs-pv-namespace1,efs-pv-namespace2。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-caelus
namespace: caelus
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 15Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-caelus
spec:
capacity:
storage: 15Gi
accessModes:
- ReadWriteMany
nfs:
server: 10.100.15.163
path: "/"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-nirvana
namespace: nirvana
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 15Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-nirvana
spec:
capacity:
storage: 15Gi
accessModes:
- ReadWriteMany
nfs:
server: 10.100.15.163
path: "/"