Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Clonar volumes entre namespaces

Colaboradores netapp-aruldeepa

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.

Início rápido

Você pode configurar a clonagem de volume em apenas algumas etapas.

Um 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.

Dois Conceda permissão para criar um CR no namespace de destino

O administrador do cluster concede permissão ao proprietário do namespace de destino para criar o CredentVolumeReference CR.

Três Crie TridentVolumeReference no namespace de destino

O proprietário do namespace de destino cria o TrigentVolumeReference CR para se referir ao PVC de origem.

Quatro Crie o clone PVC no namespace de destino

O 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.

Passos
  1. 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 a cloneToNamespace anotaçã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: 100Gi

    O Trident cria o PV e seu volume de armazenamento de back-end.

    Observação
    • 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 cloneToNamespace anotação a qualquer momento.

  2. Cluster admin: Crie a função personalizada e kubeconfig para conceder permissão ao proprietário do namespace de destino para criar o TridentVolumeReference CR no namespace de destino(namespace2 ).

  3. 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
  4. Proprietário do namespace de destino: Crie um PVC (pvc2) no namespace de destino (namespace2) usando cloneFromPVC ou cloneFromSnapshot e cloneFromNamespace anotaçõ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.