Clonar volumes entre namespaces
Usando o Trident, você pode criar novos volumes utilizando volumes existentes ou snapshots de volumes de um namespace diferente dentro do mesmo cluster Kubernetes.
Pré-requisitos
Antes de clonar volumes, certifique-se de que os backends de origem e destino sejam do mesmo tipo e tenham a mesma classe de armazenamento.
|
|
A clonagem entre namespaces é suportada apenas para o 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 volumes em apenas alguns passos.
Configure o PVC de origem para clonar o volume.O proprietário do namespace de origem concede permissão para acessar os dados no PVC de origem.
Conceder permissão para criar uma solicitação de configuração (CR) no espaço de nomes de destino.O administrador do cluster concede permissão ao proprietário do namespace de destino para criar o CR TridentVolumeReference.
Crie uma TridentVolumeReference no namespace de destino.O proprietário do namespace de destino cria o CR TridentVolumeReference para se referir ao PVC de origem.
Crie o PVC clonado no namespace de destino.O proprietário do namespace de destino cria um PVC para clonar o PVC do namespace de origem.
Configure os namespaces de origem e destino.
Para garantir a segurança, a clonagem de volumes entre namespaces requer a colaboração e a ação do proprietário do namespace de origem, do administrador do cluster e do proprietário do namespace de destino. A função do usuário é definida em cada etapa.
-
Proprietário do namespace de origem: Criar o PVC(
pvc1) no espaço de nomes de origem(namespace1) que concede permissão para compartilhar com o espaço de nomes de destino(namespace2) usando ocloneToNamespaceanotaçã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: 100GiA Trident cria o PV e seu volume de armazenamento de backend.
-
Você pode compartilhar o PVC com vários namespaces usando uma lista separada 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 o
cloneToNamespaceAnotações a qualquer momento.
-
-
Administrador do cluster: Certifique-se de que o RBAC adequado esteja implementado 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 uma solicitação de configuração (CR) TridentVolumeReference no namespace de destino que faça referência 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: Criar um PVC(
pvc2) no espaço de nomes de destino(namespace2) usando ocloneFromPVCoucloneFromSnapshot, ecloneFromNamespaceAnotaçõ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 provisionadas usando drivers ontap-nas-economy, clones somente leitura não são suportados.