【问题标题】:Need CIFS dynamic PV provisionner restricted to a specific namespace需要限制到特定命名空间的 CIFS 动态 PV 供应商
【发布时间】:2019-11-25 21:20:35
【问题描述】:

我在裸机上有一个 Kubernetes 集群。

我需要一个仅限于特定命名空间的 CIFS 动态 PV 供应商。我只希望有权访问 namespace_a 的用户/pod 能够存储在 CIFS shared_a 上配置的 PV 上。

是否有任何现有的解决方案可用?

任何替代方案可以让我动态配置由 samba nas 共享支持的 PV,同时保持命名空间隔离?

谢谢

【问题讨论】:

    标签: kubernetes cifs


    【解决方案1】:

    根据设计,PersistentVolume 不是 namespaced objects,但 PersistentVolumeClaim 是。

    要实现命名空间和持久卷之间的隔离,您可以bind PV to PVC. 这是一对一的映射,它将卷“保留”到特定的 PVC。

    您必须在 PersistentVolume 的 spec 字段中指定 claimRef

    ClaimRef 是 PersistentVolume 之间双向绑定的一部分 和 PersistentVolumeClaim。 绑定时预计为非零。 claim.VolumeName 是 PV 和 PVC 之间的权威绑定。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv1
    [...]
    spec:
    [...]
      claimRef:
        name: claim
        namespace: default
    

    在 PVC 中:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: claim
    spec:
    [...]
      volumeName: pv1
    

    【讨论】:

    • 动态供应商能否自动执行此绑定?在具有 volumeName 的 PVC 上,生成一个带有 claimRef 的 PV 以绑定到 PVC。