Crea snapshot del volume

Questo documento spiega come creare una copia, o snapshot, di un volume di archiviazione in un momento specifico per l'applicazione container. Uno snapshot del volume ti consente di riportare un volume a uno stato precedente o di eseguire il provisioning di un nuovo volume.

Questo documento è rivolto agli sviluppatori del gruppo di operatori di applicazioni, responsabili della creazione di carichi di lavoro delle applicazioni per la propria organizzazione. Per saperne di più, consulta la sezione Pubblico per la documentazione di GDC con air gap.

Prima di iniziare

Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.

Richiedi ruoli IAM

Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per creare snapshot dei volumi. I ruoli richiesti dipendono dal fatto che tu stia lavorando in un cluster condiviso con ambito organizzazione o in un cluster standard con ambito progetto. Per saperne di più, consulta la sezione Configurazione dei cluster Kubernetes.

Ruoli del cluster condiviso

Per creare, eliminare, modificare o visualizzare gli snapshot dei volumi in un cluster condiviso, chiedi all'amministratore IAM del progetto di concederti il ruolo Amministratore dello spazio dei nomi (namespace-admin). Questo ruolo è associato allo spazio dei nomi del progetto.

Ruoli del cluster standard

Per creare, eliminare, modificare o visualizzare gli snapshot dei volumi in un cluster standard, chiedi all'amministratore IAM del progetto di concederti il ruolo Sviluppatore del cluster (cluster-developer). Questo ruolo è associato allo spazio dei nomi del progetto.

Prepara l'ambiente

Per eseguire comandi su un cluster Kubernetes utilizzando l'API, assicurati di disporre delle seguenti risorse:

  • Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.

  • Accedi e genera il file kubeconfig per il cluster Kubernetes.

  • Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire KUBERNETES_CLUSTER_KUBECONFIG in queste istruzioni.

Scatta uno snapshot del volume

Per scattare uno snapshot di un oggetto PersistentVolumeClaim, crea un oggetto VolumeSnapshot. Il sistema non garantisce la coerenza dei dati. Metti in pausa l'applicazione e scarica i dati prima di scattare uno snapshot.

  1. Crea una risorsa personalizzata VolumeSnapshot:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshot
    metadata:
      name: VOLUME_SNAPSHOT_NAME
    spec:
      source:
        persistentVolumeClaimName: PVC_NAME
    EOF
    

    Sostituisci quanto segue:

    • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster.

    • NAMESPACE: lo spazio dei nomi in cui creare lo snapshot del volume. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.

    • VOLUME_SNAPSHOT_NAME: il nome dell'oggetto VolumeSnapshot.

    • PVC_NAME: il nome del PVC per cui stai creando uno snapshot.

  2. L'operazione di snapshot è completata quando il campo .status.readyToUse diventa true. Puoi utilizzare il seguente comando per controllare lo stato:

      kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. Aggiorna il manifest PVC con lo snapshot del volume specificato come origine dati:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      dataSource:
        name: VOLUME_SNAPSHOT_NAME
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
      storageClassName: standard-rwo
      accessModes:
        - ReadWriteOnce
    resources:
      requests:
        storage: 10Gi
    EOF
    

    Sostituisci quanto segue:

    • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster.

    • NAMESPACE: lo spazio dei nomi in cui esiste la risorsa PVC. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.

    • PVC_NAME: il nome del PVC per cui stai creando uno snapshot.

    • VOLUME_SNAPSHOT_NAME: il nome dello snapshot del volume.

Passaggi successivi