Clonar volumes entre namespaces
Com o Trident, você pode criar novos volumes usando volumes existentes ou volumes de volume a partir de um namespace diferente dentro do mesmo cluster do Kubernetes.
Pré-requisitos
Antes de clonar volumes, certifique-se de que os backends de origem e destino são do mesmo tipo e têm a mesma classe de armazenamento.
|
|
A clonagem entre namespaces é suportada apenas para ontap-san e ontap-nas drivers de armazenamento. Clones somente leitura não são suportados.
|
Início rápido
Você pode configurar a clonagem de volume em apenas algumas etapas.
Configure o PVC de origem para clonar o volumeO proprietário do namespace de origem concede permissão para acessar os dados no PVC de origem.
Conceda permissão para criar um CR no namespace de destinoO administrador do cluster concede permissão ao proprietário do namespace de destino para criar o CredentVolumeReference CR.
Crie TridentVolumeReference no namespace de destinoO proprietário do namespace de destino cria o TrigentVolumeReference CR para se referir ao PVC de origem.
Crie o clone PVC no namespace de destinoO proprietário do namespace de destino cria PVC para clonar o PVC a partir do namespace de origem.
Configure os namespaces de origem e destino
Para garantir a segurança, a clonagem de volumes entre namespaces requer colaboração e ação do proprietário do namespace de origem, do administrador do cluster e do proprietário do namespace de destino. A função de usuário é designada em cada etapa.
-
Proprietário do namespace de origem: Crie o PVC (
pvc1) no namespace de origem (namespace1) que concede permissão para compartilhar com o namespace de destino (namespace2) usando acloneToNamespaceanotação.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/cloneToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiO Trident cria o PV e seu volume de armazenamento de back-end.
-
Você pode compartilhar o PVC para vários namespaces usando uma lista delimitada por vírgulas. Por exemplo,
trident.netapp.io/cloneToNamespace: namespace2,namespace3,namespace4. -
Você pode compartilhar com todos os namespaces usando
*. Por exemplo,trident.netapp.io/cloneToNamespace: * -
Você pode atualizar o PVC para incluir a
cloneToNamespaceanotação a qualquer momento.
-
-
Administrador do cluster: Certifique-se de que o RBAC adequado esteja em vigor para conceder permissão ao proprietário do namespace de destino para criar o CR TridentVolumeReference no namespace de destino(
namespace2). -
Proprietário do namespace de destino: Crie um CredentVolumeReference CR no namespace de destino que se refere ao namespace de origem
pvc1.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1 -
Proprietário do namespace de destino: Crie um PVC (
pvc2) no namespace de destino (namespace2) usandocloneFromPVCoucloneFromSnapshotecloneFromNamespaceanotações para designar o PVC de origem.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
Limitações
-
Para PVCs provisionados com drivers de economia ONTAP-nas, os clones somente leitura não são compatíveis.