Crea snapshot dei volumi

Questa pagina 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.

Questa pagina è rivolta agli sviluppatori all'interno del gruppo di operatori delle applicazioni, che sono responsabili della creazione dei carichi di lavoro delle applicazioni per la loro organizzazione.

Prima di iniziare

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

Richiedere ruoli IAM

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

prepara l'ambiente

Per eseguire comandi sul cluster Kubernetes bare metal preconfigurato, assicurati di disporre delle seguenti risorse:

  1. Individua il nome del cluster Kubernetes o chiedi all'amministratore della piattaforma qual è il nome del cluster.

  2. Accedi e genera il file kubeconfig per il cluster Kubernetes se non ne hai uno.

  3. Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire CLUSTER_KUBECONFIG in queste istruzioni.

Acquisire uno snapshot del volume

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

  1. Crea una risorsa personalizzata VolumeSnapshot:

    kubectl --kubeconfig 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:

    • CLUSTER_KUBECONFIG: il file kubeconfig per il cluster Kubernetes.

    • NAMESPACE: lo spazio dei nomi del progetto in cui creare lo snapshot del volume.

    • 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 è completa quando il campo .status.readyToUse diventa true. Puoi utilizzare il seguente comando per controllare lo stato:

      kubectl --kubeconfig 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 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:

    • CLUSTER_KUBECONFIG: il file kubeconfig per il cluster Kubernetes.

    • NAMESPACE: lo spazio dei nomi in cui esiste la risorsa PVC.

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

    • VOLUME_SNAPSHOT_NAME: il nome dello snapshot del volume.

Passaggi successivi