在命名空间之间共享NFS卷
使用Astra Trident、您可以在主命名空间中创建卷、并在一个或多个二级命名空间中共享该卷。
功能
使用Astra TridentVolumeReference CR、您可以在一个或多个Kubernetes命名空间之间安全地共享ReadWriteMany (rwx) NFS卷。此Kubernetes本机解决方案 具有以下优势:
-
可通过多个级别的访问控制来确保安全性
-
适用于所有Trident NFS卷驱动程序
-
不依赖于tridentctl或任何其他非本机Kubernetes功能
此图显示了两个Kubernetes命名空间之间的NFS卷共享。
快速入门
只需几个步骤即可设置NFS卷共享。
源命名空间所有者授予访问源PVC中数据的权限。
集群管理员向目标命名空间的所有者授予创建TridentVolumeReference CR的权限。
目标命名空间的所有者将创建TridentVolumeReference CR以引用源PVC。
目标命名空间的所有者创建从属PVC以使用源PVC中的数据源。
配置源和目标命名空间
为了确保安全性、跨命名空间共享需要源命名空间所有者、集群管理员和目标命名空间所有者的协作和操作。每个步骤都会指定用户角色。
-
Source命名空间owner:(
pvc1`在源命名空间中创建PVC,该PVC用于授予与目标命名空间共享的权限(`namespace2
)。shareToNamespace
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/shareToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
Astra Trident会创建PV及其后端NFS存储卷。
-
您可以使用逗号分隔列表将PVC共享给多个命名空间。例如,
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4
。 -
您可以使用共享到所有
*`的文件。例如、 `trident.netapp.io/shareToNamespace: *
-
您可以随时更新PVC以包含 `shareToNamespace`标注。
-
-
*集群管理员:*创建自定义角色并执行kubeconfig、以授予目标命名空间所有者在目标命名空间中创建TridentVolumeReference CR的权限。
-
*目标命名空间所有者:*在目标命名空间中创建引用源命名空间的trident卷 引用CR
pvc1
。apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1
-
Destination命名空间owner:(
pvc2`在目标命名空间中创建PVC(`namespace2
)使用 `shareFromPVC`标注指定源PVC。kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/shareFromPVC: namespace1/pvc1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
目标PVC的大小必须小于或等于源PVC。
Asta Trident读取 `shareFromPVC`目标PVC上的标注、并将目标PV创建为其自身没有指向源PV的存储资源的子卷、同时共享源PV存储资源。目标PVC和PV显示为正常绑定。
删除共享卷
您可以删除跨多个命名空间共享的卷。Astra Trident将删除对源命名空间上卷的访问、并保持对共享该卷的其他命名空间的访问。删除引用卷的所有命名空间后、Astra Trident将删除该卷。
`tridentctl get`用于查询子卷
您可以使用[tridentctl`实用程序运行 `get`命令以获取子卷。有关详细信息、请参阅链接:Trident tridentctl.html[`tridentctl
commands and options ]。
Usage: tridentctl get [option]
flags
-
`-h, --help
:卷帮助。 -
--parentOfSubordinate string
:将查询限制为从属源卷。 -
--subordinateOf string
:将查询限制为卷的子卷。
限制
-
Astra Trident无法阻止目标命名空间写入共享卷。您应使用文件锁定或其他进程来防止覆盖共享卷数据。
-
您不能通过删除或
shareFromNamespace`标注或删除CR来撤消对源PVC的 `TridentVolumeReference`访问 `shareToNamespace
。要撤消访问、必须删除从属PVC。 -
无法在从属卷上执行快照、克隆和镜像。
了解更多信息
要了解有关跨命名空间卷访问的详细信息、请执行以下操作:
-
观看上的演示 "NetAppTV"。