Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Comparte un volumen NFS entre espacios de nombres

Con Trident, puedes crear un volumen en un espacio de nombres primario y compartirlo en uno o más espacios de nombres secundarios.

Funciones

El CR TridentVolumeReference te permite compartir de forma segura volúmenes NFS ReadWriteMany (RWX) entre uno o varios espacios de nombres de Kubernetes. Esta solución nativa de Kubernetes tiene los siguientes beneficios:

  • Múltiples niveles de control de acceso para garantizar la seguridad

  • Funciona con todos los controladores de volumen NFS de Trident

  • No depende de tridentctl ni de ninguna otra función no nativa de Kubernetes

Este diagrama ilustra el uso compartido de volúmenes NFS en dos espacios de nombres de Kubernetes.

Un diagrama conceptual de la compartición entre espacios de nombres.

Inicio rápido

Puedes configurar el uso compartido de volúmenes NFS en unos pocos pasos.

1 Configura el PVC de origen para compartir el volumen

El propietario del espacio de nombres de origen otorga permiso para acceder a los datos en el PVC de origen.

Dos Otorga permiso para crear una CR en el espacio de nombres de destino

El administrador del clúster otorga permiso al propietario del espacio de nombres de destino para crear el CR TridentVolumeReference.

Tres Crea TridentVolumeReference en el espacio de nombres de destino

El propietario del espacio de nombres de destino crea el CR TridentVolumeReference para hacer referencia al PVC de origen.

Cuatro Crea la PVC subordinada en el espacio de nombres de destino

El propietario del espacio de nombres de destino crea el PVC subordinado para usar la fuente de datos del PVC de origen.

Configura los espacios de nombres de origen y destino

Para garantizar la seguridad, el uso compartido entre espacios de nombres requiere la colaboración y acción del propietario del espacio de nombres de origen, el administrador del clúster y el propietario del espacio de nombres de destino. El rol del usuario se designa en cada paso.

Pasos
  1. Propietario del espacio de nombres de origen: Crea el PVC (pvc1) en el espacio de nombres de origen que da permiso para compartir con el espacio de nombres de destino (namespace2) usando la anotación 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

    Trident crea el PV y su volumen de almacenamiento NFS de backend.

    Nota
    • Puedes compartir el PVC con varios espacios de nombres usando una lista separada por comas. Por ejemplo, trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4.

    • Puedes compartir a todos los espacios de nombres usando *. Por ejemplo, trident.netapp.io/shareToNamespace: *

    • Puedes actualizar el PVC para incluir la anotación shareToNamespace en cualquier momento.

  2. Administrador del clúster: Asegúrate de que existe el RBAC adecuado para conceder permiso al propietario del espacio de nombres de destino para crear el CR TridentVolumeReference en el espacio de nombres de destino.

  3. Propietario del espacio de nombres de destino: crea una TridentVolumeReference CR en el espacio de nombres de destino que hace referencia 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
  4. Propietario del espacio de nombres de destino: crea un PVC (pvc2) en el espacio de nombres de destino (namespace2) usando la anotación shareFromPVC 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
    Nota El tamaño del PVC de destino debe ser menor o igual que el PVC de origen.
Resultados

Trident lee la shareFromPVC anotación en el PVC de destino y crea el PV de destino como un volumen subordinado sin recurso de almacenamiento propio que apunta al PV de origen y comparte el recurso de almacenamiento del PV de origen. El PVC y el PV de destino aparecen vinculados de forma normal.

Eliminar un volumen compartido

Puedes eliminar un volumen que está compartido entre varios espacios de nombres. Trident quitará el acceso al volumen en el espacio de nombres de origen y mantendrá el acceso para los demás espacios de nombres que comparten el volumen. Cuando se eliminan todos los espacios de nombres que hacen referencia al volumen, Trident elimina el volumen.

Usa tridentctl get para consultar volúmenes subordinados

Usando la utilidad[tridentctl, puedes ejecutar el comando get para obtener volúmenes subordinados. Para más información, consulta el enlace:../trident-reference/trident-cl.html[tridentctl comandos y opciones].

Usage:
  tridentctl get [option]

Banderas:

  • `-h, --help: ayuda para volúmenes.

  • --parentOfSubordinate string: limitar la consulta al volumen fuente subordinado.

  • --subordinateOf string: limitar la consulta a los subordinados del volumen.

Limitaciones

  • Trident no puede evitar que los espacios de nombres de destino escriban en el volumen compartido. Deberías usar el bloqueo de archivos u otros procesos para evitar sobrescribir los datos del volumen compartido.

  • No puedes revocar el acceso al PVC de origen eliminando las anotaciones shareToNamespace o shareFromNamespace o eliminando el TridentVolumeReference CR. Para revocar el acceso, tienes que borrar el PVC subordinado.

  • Las instantáneas, clones y la replicación no son posibles en volúmenes subordinados.

Para más información

Para obtener más información sobre el acceso a volúmenes entre espacios de nombres: