Clonar volúmenes en distintos espacios de nombres
Con Trident, puedes crear nuevos volúmenes usando volúmenes existentes o instantáneas de volúmenes de un espacio de nombres diferente dentro del mismo clúster de Kubernetes.
Prerrequisitos
Antes de clonar volúmenes, asegúrate de que los backends de origen y destino sean del mismo tipo y tengan la misma clase de almacenamiento.
|
|
La clonación entre espacios de nombres solo se admite para los controladores de almacenamiento ontap-san y ontap-nas. No se admiten clones de solo lectura.
|
Inicio rápido
Puedes configurar la clonación de volumen en solo unos pocos pasos.
Configura el PVC de origen para clonar el volumenEl propietario del espacio de nombres de origen otorga permiso para acceder a los datos en el PVC de origen.
Otorga permiso para crear una CR en el espacio de nombres de destinoEl administrador del clúster otorga permiso al propietario del espacio de nombres de destino para crear el CR TridentVolumeReference.
Crea TridentVolumeReference en el espacio de nombres de destinoEl propietario del espacio de nombres de destino crea el CR TridentVolumeReference para hacer referencia al PVC de origen.
Crea el PVC clonado en el espacio de nombres de destinoEl propietario del espacio de nombres de destino crea PVC para clonar la PVC del espacio de nombres de origen.
Configura los espacios de nombres de origen y destino
Para garantizar la seguridad, clonar volúmenes 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 indica en cada paso.
-
Propietario del espacio de nombres de origen: Crea el PVC (
pvc1en el espacio de nombres de origen (namespace1que otorga permiso para compartir con el espacio de nombres de destino (namespace2usando la anotacióncloneToNamespace.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/cloneToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiTrident crea el PV y su volumen de almacenamiento backend.
-
Puedes compartir la PVC con varios espacios de nombres usando una lista delimitada por comas. Por ejemplo,
trident.netapp.io/cloneToNamespace: namespace2,namespace3,namespace4. -
Puedes compartir con todos los espacios de nombres usando
*. Por ejemplo,trident.netapp.io/cloneToNamespace: * -
Puedes actualizar el PVC para incluir la
cloneToNamespaceanotación en cualquier momento.
-
-
Administrador del clúster: Asegúrate de que exista un RBAC adecuado para otorgar permiso al propietario del espacio de nombres de destino para crear la CR TridentVolumeReference en el espacio de nombres de destino (
namespace2). -
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 -
Propietario del espacio de nombres de destino: crea un PVC (
pvc2) en el espacio de nombres de destino (namespace2) usando lacloneFromPVCocloneFromSnapshot, ycloneFromNamespaceanotaciones para designar el PVC de origen.kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/cloneFromPVC: pvc1 trident.netapp.io/cloneFromNamespace: namespace1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
Limitaciones
-
Para los PVC aprovisionados usando controladores ontap-nas-economy, no se admiten clones de solo lectura.