Risolvere i problemi relativi allo spazio di archiviazione in Backup per GKE


Questa pagina descrive gli errori relativi allo spazio di archiviazione che potresti riscontrare durante l'utilizzo di Backup per GKE, gli aspetti da considerare durante l'esecuzione dell'azione e i passaggi per risolvere il problema.

Errore 100010105: Impossibile eseguire il backup di PersistentVolumeClaim. Il disco a cui fa riferimento PersistentVolume non esiste

L'errore 100010105 si verifica quando un tentativo di backup di un PersistentVolumeClaim non riesce perché fa riferimento a un disco inesistente, generando un messaggio di errore che indica Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist.

In Google Kubernetes Engine, PersistentVolumeClaims richiedi spazio di archiviazione da PersistentVolumes. Un PersistentVolume, a sua volta, rappresenta una parte di spazio di archiviazione, spesso un disco permanente di Compute Engine sottostante. Si può verificare un errore quando un PersistentVolumeClaim è associato a un PersistentVolume e la configurazione di PersistentVolume specifica un disco permanente di Compute Engine. Tuttavia, non è possibile trovare nel tuo progetto Google Cloud il disco effettivo con il nome e la posizione specificati nella configurazione PersistentVolume. Pertanto, Backup per GKE non può procedere con il backup di un disco inesistente e si verifica un errore.

Per risolvere questo errore, segui queste istruzioni:

  1. Identifica i PersistentVolumeClaim e PersistentVolume problematici. I nomi sia di PersistentVolumeClaim problematico sia di PersistentVolume associato sono elencati nel campo state reason dell'operazione di Backup per GKE non riuscita. Ti consigliamo di documentare sia il nome di PersistentVolumeClaim, il relativo spazio dei nomi e il nome di PersistentVolume.

  2. Controlla PersistentVolume. Per descrivere PersistentVolume, utilizza il nome PersistentVolume che hai identificato dal campo Motivo dello stato nel seguente comando:

    kubectl describe pv PERSISTENTVOLUME_NAME
    

    Sostituisci PERSISTENTVOLUME_NAME con il nome del tuo PersistentVolume.

  3. Nell'output, esamina la sezione source, in particolare sotto csi. Questa sezione descrive VolumeHandle a cui PersistentVolume sta tentando di fare riferimento. Ad esempio:

    Source:
      Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine)
    PDName: my-non-existent-disk
    FSType: ext4
    Partition: 0
    ReadOnly: false
                In this example, the PD name is my-non-existent-disk.
    
        Source:
      Type:       CSI (a Container Storage Interface (CSI) volume)
      Driver:     pd.csi.storage.gke.io
      VolumeHandle: projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
    ...
    

    In questo esempio, VolumeHandle contiene il percorso completo del disco, inclusi il nome e la posizione. Ad esempio, projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name.

  4. Utilizza VolumeHandle ottenuto dalla descrizione di PersistentVolume per identificare il nome e la zona del disco.

  5. Verifica che il disco esista nel tuo progetto Google Cloud utilizzando uno dei seguenti metodi:

    Disco di zona

    Se utilizzi un disco di zona, utilizza Google Cloud CLI per eseguire il comando gcloud compute disks describe:

    gcloud compute disks describe DISK_NAME \
        --zone=ZONE_NAME \
        --project=PROJECT_ID
    

    Sostituisci quanto segue:

    • DISK_NAME: il nome del disco ottenuto dalla descrizione di PersistentVolume.

    • ZONE_NAME: la zona del disco che hai ottenuto dalla descrizione di PersistentVolume.

    • PROJECT_ID: il tuo ID progetto Google Cloud .

    Disco regionale

    Se utilizzi un disco regionale, utilizza Google Cloud CLI per eseguire il comando gcloud compute disks describe:

    gcloud compute disks describe DISK_NAME \
        --region=REGION_NAME \
        --project=PROJECT_ID
    

    Sostituisci quanto segue:

    • DISK_NAME: il nome del disco ottenuto dalla descrizione di PersistentVolume.

    • REGION_NAME: la regione del disco che hai ottenuto dalla descrizione di PersistentVolume.

    • PROJECT_ID: il tuo ID progetto Google Cloud .

    Se ricevi un messaggio di errore Resource not found o The resource DISK_NAME was not found, il disco non esiste. Utilizza uno dei seguenti metodi per risolvere il problema a seconda dello scenario più adatto alle tue esigenze:

    • Se il disco è stato eliminato o denominato in modo errato per errore e vuoi conservare i dati o PersistentVolumeClaim oppure se PersistentVolume è stato configurato con un nome del disco errato, utilizza uno dei seguenti metodi per risolvere il problema:

      • Ripristina il disco: se hai un backup del disco, ripristinalo con esattamente lo stesso nome e la stessa posizione a cui fa riferimento PersistentVolume.

      • Crea un nuovo disco: se il ripristino del disco non è un'opzione, crea un nuovo disco con lo stesso nome e la stessa posizione della configurazione PersistentVolume.

    • Se PersistentVolumeClaim o PersistentVolume, i relativi dati o l'applicazione non sono più necessari, ti consigliamo di rimuovere l'entità non necessaria:

      • Elimina PersistentVolumeClaim: elimina PersistentVolumeClaim utilizzando lo strumento a riga di comando kubectl per eseguire il comando kubectl delete pvc:
      kubectl delete pvc PVC_NAME -n NAMESPACE
      

      Sostituisci quanto segue:

      • PVC_NAME: il nome del PersistentVolumeClaim che vuoi eliminare.

      • NAMESPACE: lo spazio dei nomi del PersistentVolumeClaim che vuoi eliminare.

    • PersistentVolume è ancora presente dopo l'eliminazione di PersistentVolumeClaim: se PersistentVolumeReclaimPolicy di PersistentVolume è impostato su Delete, PersistentVolume viene eliminato automaticamente quando PersistentVolumeClaim viene eliminato. Se persistentVolumeReclaimPolicy è impostato su Retain, devi eliminare manualmente PersistentVolume dopo l'eliminazione di PersistentVolumeClaim. Per eliminare PersistentVolume, utilizza lo strumento a riga di comando kubectl per eseguire il comando kubectl delete pv:

      kubectl delete pv PV_NAME
      

      Sostituisci PV_NAME con il nome del PersistentVolume che vuoi eliminare.

Se l'operazione continua a non riuscire, contatta l'assistenza clienti Google Cloud per ulteriore assistenza.