如何限制对pv的访问

时间:2018-01-16 01:37:54

标签: openshift openshift-origin

在openshift中,PV可以在所有项目中使用,如果你能看到它,你可以声称它。

有没有办法限制PV仅适用于某些应用/项目?对于其他人,他们被禁止使用它。

似乎StorageClass不符合此要求。

祝你好运

1 个答案:

答案 0 :(得分:3)

您可以预先绑定卷并声明[1]:

  

您可能还希望群集管理员仅为您的声明“保留”该卷,以便其他人的声明可以在您的声明之前绑定到该声明。在这种情况下,管理员可以使用claimRef字段指定PV中的PVC。 PV只能绑定到claimRef中指定的具有相同名称和命名空间的PVC。尽管标签选择器被忽略,但仍必须满足PVC的访问模式和资源请求才能绑定PV和PVC。

     

如果您确切知道要将PersistentVolumeClaim绑定到的PersistentVolume,可以使用volumeName字段指定PVC中的PV。此方法会跳过正常的匹配和绑定过程。 PVC只能绑定到volumeName中指定的同名PV。如果具有该名称的PV存在并且可用,则无论PV是否满足PVC的标签选择器,访问模式和资源请求,PV和PVC都将被绑定。

PersistentVolume示例:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0001
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  nfs:
    path: /tmp
    server: 172.17.0.2
  persistentVolumeReclaimPolicy: Recycle
  claimRef:
    name: claim1
    namespace: default

PersistentVolumeClaim示例:

apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
  name: "claim1"
spec:
  accessModes:
    - "ReadWriteOnce"
  resources:
    requests:
      storage: "1Gi"
  volumeName: "pv0001"

[1] https://docs.openshift.org/latest/dev_guide/persistent_volumes.html#persistent-volumes-volumes-and-claim-prebinding