Fehlerbehebung bei Speicherfehlern in Sicherung für GKE


Auf dieser Seite werden speicherbezogene Fehler beschrieben, die bei der Verwendung von Sicherung für GKE auftreten können. Außerdem werden wichtige Aspekte für die Durchführung der Aktion und Schritte zur Fehlerbehebung erläutert.

Fehler 100010105: Fehler beim Sichern von PersistentVolumeClaim – Auf die vom PersistentVolume verwiesene Festplatte ist nicht vorhanden

Der Fehler 100010105 tritt auf, wenn beim Versuch, eine PersistentVolumeClaim zu sichern, ein Fehler auftritt, weil sie auf ein nicht vorhandenes Laufwerk verweist. In diesem Fall wird die Fehlermeldung Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist angezeigt.

In Google Kubernetes Engine wird mit PersistentVolumeClaims Speicherplatz von PersistentVolumes angefordert. Ein PersistentVolume wiederum stellt einen Speicherbereich dar, häufig einen zugrunde liegenden nichtflüchtigen Compute Engine-Speicher. Ein Fehler kann auftreten, wenn ein PersistentVolumeClaim an ein PersistentVolume gebunden ist und in der Konfiguration des PersistentVolume ein nichtflüchtiger Compute Engine-Speicher angegeben ist. Das tatsächliche Laufwerk mit dem in der PersistentVolume-Konfiguration angegebenen Namen und Speicherort kann jedoch in Ihrem Google Cloud -Projekt nicht gefunden werden. Daher kann Sicherung für GKE keine nicht vorhandene Festplatte sichern und es tritt ein Fehler auf.

So beheben Sie diesen Fehler:

  1. Identifizieren Sie die problematischen PersistentVolumeClaim und PersistentVolume. Die Namen des problematischen PersistentVolumeClaim und des zugehörigen PersistentVolume sind im Feld state reason des fehlgeschlagenen Sicherung für GKE-Vorgangs aufgeführt. Wir empfehlen, sowohl den Namen der PersistentVolumeClaim als auch den Namespace und den Namen der PersistentVolume zu dokumentieren.

  2. Prüfen Sie PersistentVolume. Verwenden Sie zum Beschreiben von PersistentVolume den Namen von PersistentVolume, den Sie im Feld „Grund für Status“ im folgenden Befehl angegeben haben:

    kubectl describe pv PERSISTENTVOLUME_NAME
    

    Ersetzen Sie PERSISTENTVOLUME_NAME durch den Namen Ihres PersistentVolume.

  3. Sehen Sie sich in der Ausgabe den Abschnitt source an, insbesondere unter csi. In diesem Abschnitt wird die VolumeHandle beschrieben, auf die PersistentVolume verweist. Beispiel:

    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 diesem Beispiel enthält VolumeHandle den vollständigen Pfad zum Laufwerk, einschließlich Name und Speicherort. Beispiel: projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name

  4. Verwenden Sie die VolumeHandle aus der PersistentVolume-Beschreibung, um den Namen und die Zone des Laufwerks zu ermitteln.

  5. Prüfen Sie mit einer der folgenden Methoden, ob die Festplatte in Ihrem Google Cloud Projekt vorhanden ist:

    Zonales Laufwerk

    Wenn Sie einen zonalen Datenträger verwenden, führen Sie den Befehl gcloud compute disks describe mit der Google Cloud CLI aus:

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

    Ersetzen Sie Folgendes:

    • DISK_NAME: der Name des Laufwerks, den Sie aus der PersistentVolume-Beschreibung erhalten haben.

    • ZONE_NAME: die Zone des Laufwerks, die Sie aus der Beschreibung von PersistentVolume erhalten haben.

    • PROJECT_ID: Ihre Google Cloud -Projekt-ID.

    Regionales Laufwerk

    Wenn Sie einen regionalen Datenträger verwenden, führen Sie den Befehl gcloud compute disks describe mit der Google Cloud CLI aus:

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

    Ersetzen Sie Folgendes:

    • DISK_NAME: der Name des Laufwerks, den Sie aus der PersistentVolume-Beschreibung erhalten haben.

    • REGION_NAME: die Region des Laufwerks, die Sie aus der Beschreibung von PersistentVolume erhalten haben.

    • PROJECT_ID: Ihre Google Cloud -Projekt-ID.

    Wenn Sie die Fehlermeldung Resource not found oder The resource DISK_NAME was not found erhalten, ist die Festplatte nicht vorhanden. Verwenden Sie eine der folgenden Methoden, um das Problem zu beheben. Wählen Sie dazu das Szenario aus, das Ihren Anforderungen am besten entspricht:

    • Wenn die Festplatte versehentlich gelöscht oder falsch benannt wurde und Sie die Daten oder PersistentVolumeClaim behalten möchten oder die PersistentVolume mit einem falschen Festplattennamen konfiguriert wurde, verwenden Sie eine der folgenden Methoden, um das Problem zu beheben:

      • Festplatte wiederherstellen: Wenn Sie eine Sicherung der Festplatte haben, stellen Sie sie mit genau demselben Namen und Speicherort wieder her, auf die PersistentVolume verweist.

      • Neues Laufwerk erstellen: Wenn das Wiederherstellen des Laufwerks nicht möglich ist, erstellen Sie ein neues Laufwerk mit demselben Namen und Speicherort wie in der PersistentVolume-Konfiguration.

    • Wenn die PersistentVolumeClaim oder PersistentVolume, ihre Daten oder die Anwendung nicht mehr benötigt werden, empfehlen wir, die nicht benötigte Einheit zu entfernen:

      • PersistentVolumeClaim löschen: Löschen Sie die PersistentVolumeClaim mit dem kubectl-Befehlszeilentool, indem Sie den Befehl kubectl delete pvc ausführen:
      kubectl delete pvc PVC_NAME -n NAMESPACE
      

      Ersetzen Sie Folgendes:

      • PVC_NAME: der Name des PersistentVolumeClaim, den Sie löschen möchten.

      • NAMESPACE: der Namespace des PersistentVolumeClaim, den Sie löschen möchten.

    • Das PersistentVolume ist nach dem Löschen des PersistentVolumeClaim weiterhin vorhanden: Wenn der PersistentVolumeReclaimPolicy des PersistentVolume auf Delete gesetzt ist, wird das PersistentVolume automatisch gelöscht, wenn das PersistentVolumeClaim gelöscht wird. Wenn persistentVolumeReclaimPolicy auf Retain gesetzt ist, müssen Sie PersistentVolume manuell löschen, nachdem PersistentVolumeClaim gelöscht wurde. Wenn Sie die PersistentVolume löschen möchten, führen Sie mit dem kubectl-Befehlszeilentool den Befehl kubectl delete pv aus:

      kubectl delete pv PV_NAME
      

      Ersetzen Sie PV_NAME durch den Namen des PersistentVolume, den Sie löschen möchten.

Wenn der Vorgang weiterhin fehlschlägt, wenden Sie sich an Cloud Customer Care.