Comparta un volumen NFS en espacios de nombres
Con Astra Trident, se puede crear un volumen en un espacio de nombres primario y compartirlo en uno o más espacios de nombres secundarios.
Funciones
La Astra TridentVolumeReference CR le permite compartir de forma segura volúmenes NFS ReadWriteMany (RWX) en uno o más espacios de nombres de Kubernetes. Esta solución nativa de Kubernetes tiene las siguientes ventajas:
-
Varios niveles de control de acceso para garantizar la seguridad
-
Funciona con todos los controladores de volúmenes NFS de Trident
-
No depende de trimentctl ni de ninguna otra función de Kubernetes no nativa
Este diagrama ilustra el uso compartido de volúmenes de NFS en dos espacios de nombres de Kubernetes.
Inicio rápido
Puede configurar el uso compartido del volumen NFS en unos pocos pasos.
El propietario del espacio de nombres de origen concede permiso para acceder a los datos de la RVP de origen.
El administrador del clúster concede permiso al propietario del espacio de nombres de destino para crear el sistema TridentVolumeReference CR.
El propietario del espacio de nombres de destino crea el TridentVolumeReference CR para hacer referencia al PVC de origen.
El propietario del espacio de nombres de destino crea el PVC subordinado para utilizar el origen de datos desde el PVC de origen.
Configurar los espacios de nombres de origen y destino
Para garantizar la seguridad, el uso compartido entre espacios de nombres requiere la colaboración y la acción del propietario del espacio de nombres de origen, el administrador de clúster y el propietario del espacio de nombres de destino. La función de usuario se designa en cada paso.
-
Propietario del espacio de nombres de origen: Crear el PVC (
pvc1
) en el espacio de nombres de origen que otorga permiso para compartir con el espacio de nombres de destino (namespace2
) usando lashareToNamespace
anotación.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 crea el VP y su volumen de almacenamiento NFS back-end.
-
Puede compartir el PVC en varios espacios de nombres utilizando una lista delimitada por comas. Por ejemplo,
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4
. -
Puede compartir en todos los espacios de nombres utilizando
*
. Por ejemplo:trident.netapp.io/shareToNamespace: *
-
Puede actualizar la RVP para incluir la
shareToNamespace
anotación en cualquier momento.
-
-
Administrador de clúster: cree la función personalizada y kubeconfig para conceder permiso al propietario del espacio de nombres de destino para crear el sistema TridentVolumeReference CR en el espacio de nombres de destino.
-
Propietario del espacio de nombres de destino: Crear un CR de TridentVolumeReference en el espacio de nombres de destino que se refiere al espacio de nombres de origen
pvc1
.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1
-
Propietario del espacio de nombres de destino: Crear un PVC (
namespace2
)(pvc2
en el espacio de nombres de destino ) Utilizando lashareFromPVC
anotación para designar el PVC de origen.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
El tamaño del PVC de destino debe ser menor o igual que el PVC de origen.
Astra Trident lee la shareFromPVC
anotación en la RVP de destino y crea el VP de destino como un volumen subordinado sin ningún recurso de almacenamiento propio que apunte al VP de origen y comparta el recurso de almacenamiento VP de origen. La RVP y el VP de destino aparecen vinculados como normales.
Elimine un volumen compartido
Es posible eliminar un volumen que se comparte en varios espacios de nombres. Astra Trident eliminará el acceso al volumen en el espacio de nombres de origen y mantendrá el acceso a otros espacios de nombres que comparten el volumen. Cuando se eliminan todos los espacios de nombres que hacen referencia al volumen, Astra Trident elimina el volumen.
Se utiliza tridentctl get
para consultar los volúmenes subordinados
Con[tridentctl
la utilidad, se puede ejecutar get
el comando para obtener volúmenes subordinados. Para obtener más información, consulte LINK:../Trident-reference/tridentctl.html[tridentctl
commands and options].
Usage: tridentctl get [option]
Indicadores:
-
`-h, --help
: Ayuda para volúmenes. -
--parentOfSubordinate string
: Limite la consulta al volumen fuente subordinado. -
--subordinateOf string
: Limite la consulta a los subordinados de volumen.
Limitaciones
-
Astra Trident no puede evitar que los espacios de nombres de destino se escriban en el volumen compartido. Se debe usar el bloqueo de archivos u otros procesos para evitar la sobrescritura de datos de volúmenes compartidos.
-
No puede revocar el acceso a la PVC de origen eliminando
shareToNamespace
las anotaciones oshareFromNamespace
eliminando laTridentVolumeReference
CR. Para revocar el acceso, debe eliminar el PVC subordinado. -
Las snapshots, los clones y el mirroring no son posibles en los volúmenes subordinados.
Si quiere más información
Para obtener más información sobre el acceso de volúmenes entre espacios de nombres:
-
Vea la demostración en "NetAppTV".