Clonar volúmenes entre espacios de nombres
Con Trident, puedes crear nuevos volúmenes utilizando 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úrese 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 ontap-san y ontap-nas Controladores de almacenamiento. No se admiten clones de solo lectura.
|
Inicio rápido
Puedes configurar la clonación de volúmenes en tan solo unos pasos.
Configure el PVC de origen para clonar el volumen.El propietario del espacio de nombres de origen otorga permiso para acceder a los datos en el PVC de origen.
Conceder permiso para crear un 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.
Cree una referencia 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.
Cree el PVC clonado en el espacio de nombres de destino.El propietario del espacio de nombres de destino crea un PVC para clonar el PVC del espacio de nombres de origen.
Configurar los espacios de nombres de origen y destino
Para garantizar la seguridad, la clonación de volúmenes entre espacios de nombres requiere la colaboración y la 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.
-
Propietario del espacio de nombres de origen: Crear el PVC(
pvc1) en el espacio de nombres de origen(namespace1) que otorga permiso para compartir con el espacio de nombres de destino(namespace2) usando elcloneToNamespaceanotación.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 el PVC con múltiples espacios de nombres utilizando 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 el
cloneToNamespaceanotaciones en cualquier momento.
-
-
Administrador del clúster: Asegúrese de que el control de acceso basado en roles (RBAC) esté configurado correctamente para otorgar permiso al propietario del espacio de nombres de destino para crear el recurso compartido TridentVolumeReference en el espacio de nombres de destino.(
namespace2). -
Propietario del espacio de nombres de destino: Cree un CR TridentVolumeReference en el espacio de nombres de destino que haga 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: Crear un PVC(
pvc2) en el espacio de nombres de destino(namespace2) usando elcloneFromPVCocloneFromSnapshot, 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 mediante controladores ontap-nas-economy, no se admiten clones de solo lectura.