This page describes storage-related errors you might experience when using Backup for GKE, things to consider when performing the action, and steps on how to troubleshoot the issue.
Error 100010105: Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist
Error 100010105 occurs when an attempt to back up a PersistentVolumeClaim
fails because it references a disk that doesn't exist, resulting in an error
message stating Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist.
In Google Kubernetes Engine, PersistentVolumeClaims request storage from
PersistentVolumes. A PersistentVolume, in turn, represents a piece of
storage, often an underlying Compute Engine Persistent Disk. An error can occur
when a PersistentVolumeClaim is bound to a
PersistentVolume and the PersistentVolume's configuration specifies a
Compute Engine Persistent Disk. However, the actual disk with the name and
location specified in the PersistentVolume configuration cannot be found in
your Google Cloud project. Thus, Backup for GKE cannot proceed with backing up
a non-existent disk, and a failure occurs.
To resolve this error, use the following instructions:
Identify the problematic
PersistentVolumeClaimandPersistentVolume. The names of both the problematicPersistentVolumeClaimand its associatedPersistentVolumeare listed in thestate reasonfield of your failed Backup for GKE operation. We recommend documenting both thePersistentVolumeClaimname, its namespace, and the name of thePersistentVolume.Inspect the
PersistentVolume. To describe thePersistentVolume, use thePersistentVolumename you identified from the state reason field in the following command:kubectl describe pv PERSISTENTVOLUME_NAMEReplace
PERSISTENTVOLUME_NAMEwith the name of your PersistentVolume.In the output, examine the
sourcesection, specifically undercsi. This section describes theVolumeHandlethat thePersistentVolumeis trying to reference. For example: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 this example, the
VolumeHandlecontains the full path to the disk, including its name and location. For example,projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name.Use the
VolumeHandleobtained from thePersistentVolumedescription to identify the disk name and zone.Verify that the disk exists in your Google Cloud project by using one of the following methods:
Zonal disk
If you're using a zonal disk, use Google Cloud CLI to run the
gcloud compute disks describecommand:gcloud compute disks describe DISK_NAME \ --zone=ZONE_NAME \ --project=PROJECT_IDReplace the following:
DISK_NAME: the name of the disk you obtained from thePersistentVolumedescription.ZONE_NAME: the zone of the disk you obtained from thePersistentVolumedescription.PROJECT_ID: your Google Cloud project ID.
Regional disk
If you're using a regional disk, use Google Cloud CLI to run the
gcloud compute disks describecommand:gcloud compute disks describe DISK_NAME \ --region=REGION_NAME \ --project=PROJECT_IDReplace the following:
DISK_NAME: the name of the disk you obtained from thePersistentVolumedescription.REGION_NAME: the region of the disk you obtained from thePersistentVolumedescription.PROJECT_ID: your Google Cloud project ID.
If you get a
Resource not foundorThe resource DISK_NAME was not founderror message, the disk doesn't exist. Use one of the following methods to resolve the issue depending on the scenario that best fits your needs:If the disk was accidentally deleted or misnamed and you want to keep the data or
PersistentVolumeClaim, or thePersistentVolumewas configured with an incorrect disk name, use one of the following methods to resolve the issue:Restore the disk: if you have a backup of the disk, restore it with the exact same name and location that the
PersistentVolumereferences.Create a new disk: if restoring the disk isn't an option, create a new disk with the same name and location that's in the
PersistentVolumeconfiguration.
If the
PersistentVolumeClaimorPersistentVolume, their data, or the application are no longer needed, we recommend removing the unneeded entity:- Delete the
PersistentVolumeClaim: delete thePersistentVolumeClaimby using thekubectlcommand-line tool to run thekubectl delete pvccommand:
kubectl delete pvc PVC_NAME -n NAMESPACEReplace the following:
PVC_NAME: the name of thePersistentVolumeClaimyou want to delete.NAMESPACE: the namespace of thePersistentVolumeClaimyou want to delete.
- Delete the
The
PersistentVolumeis still present after you delete thePersistentVolumeClaim: if thePersistentVolume'sPersistentVolumeReclaimPolicyis set toDelete, thePersistentVolumeis automatically deleted when thePersistentVolumeClaimis deleted. If thepersistentVolumeReclaimPolicyis set toRetain, you need to manually delete thePersistentVolumeafter thePersistentVolumeClaimis deleted. To delete thePersistentVolume, use thekubectlcommand-line tool to run thekubectl delete pvcommand:kubectl delete pv PV_NAMEReplace
PV_NAMEwith the name of thePersistentVolumeyou want to delete.
If the operation continues to fail, contact Cloud Customer Care for further assistance.
Error 100010202: Snapshotting volume failed
Error 100010202 occurs when Compute Engine Persistent Disk snapshot creation
fails, resulting in an error message stating Snapshotting volume failed.
A Compute Engine Persistent Disk snapshot operation fails if the disk's attachment state to a virtual machine (VM) instance changes during the snapshot creation process initiated by the Backup for GKE service. Common scenarios that trigger this include the following:
- Node auto-repair: unhealthy nodes are recreated, which causes Pods to be rescheduled and disks to detach and reattach.
- Node upgrades: during node pool upgrades, nodes are typically drained and replaced. Pods are gracefully terminated and rescheduled on the new nodes, triggering disk detach and reattach cycles.
- Cluster autoscaling: during scale-down events, if the cluster autoscaler removes a node, any Pods on that node with Persistent Disks are evicted, causing disk detachments. If these Pods are rescheduled elsewhere, attachments will occur on the new nodes. During scale-up events, new nodes don't directly cause reattachments, but Pods scheduled on them will trigger initial attachments.
This is a transient error. The backup typically succeeds on the next automated run once the disk attachment stabilizes. To prevent cluster events from impacting your backups, apply the following recommendations:
Enable Smart scheduling: Configure your backup plan using Smart scheduling (an RPO-based schedule). This allows the system to automatically retry transient failures within your specified time window without impacting the backup plan's overall RPO.
Set up backup exclusion windows: If you are performing node pool upgrades or cluster resizing operations, add a backup exclusion window to your backup settings during those intervals. This ensures that Backup for GKE service will pause and avoid scheduling snapshots while your cluster is actively modifying disk attachments.
Retry Manual Backups: In the case of manual or on-demand backups, retry the backup operation once the cluster event finishes.
If the operation continues to fail, contact Cloud Customer Care for further assistance.