本頁面說明使用 Backup for GKE 時可能發生的儲存空間相關錯誤、執行動作時應注意的事項,以及如何排解問題。
錯誤 100010105:無法備份 PersistentVolumeClaim - PersistentVolume 參照的磁碟不存在
嘗試備份 PersistentVolumeClaim 時,如果參照的磁碟不存在,就會發生錯誤 100010105,並顯示「Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist」錯誤訊息。
在 Google Kubernetes Engine 中,PersistentVolumeClaims從 PersistentVolumes要求儲存空間。而 PersistentVolume 則代表一塊儲存空間,通常是底層的 Compute Engine 永久磁碟。如果 PersistentVolumeClaim 繫結至 PersistentVolume,且 PersistentVolume 的設定指定了 Compute Engine 永久磁碟,就可能發生錯誤。不過,系統在您的 Google Cloud 專案中找不到 PersistentVolume 設定中指定的名稱和位置。因此,Backup for GKE 無法繼續備份不存在的磁碟,並會發生失敗。
如要解決這項錯誤,請按照下列說明操作:
找出有問題的
PersistentVolumeClaim和PersistentVolume。 有問題的PersistentVolumeClaim和相關聯的PersistentVolume名稱都會列在失敗的 Backup for GKE 作業的state reason欄位中。建議您記錄PersistentVolumeClaim名稱、命名空間和PersistentVolume名稱。檢查
PersistentVolume。如要說明PersistentVolume,請使用下列指令中,從狀態原因欄位識別出的PersistentVolume名稱:kubectl describe pv PERSISTENTVOLUME_NAME將
PERSISTENTVOLUME_NAME換成 PersistentVolume 的名稱。在輸出內容中,檢查
source區段,特別是csi下方的內容。本節說明PersistentVolume嘗試參照的VolumeHandle。例如: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 ...在本範例中,
VolumeHandle包含磁碟的完整路徑,包括名稱和位置。例如:projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name。使用從
PersistentVolume說明取得的VolumeHandle,找出磁碟名稱和區域。使用下列其中一種方法,確認磁碟是否位於 Google Cloud 專案中:
可用區磁碟
如果您使用的是區域磁碟,請使用 Google Cloud CLI 執行
gcloud compute disks describe指令:gcloud compute disks describe DISK_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID更改下列內容:
DISK_NAME:從PersistentVolume說明取得的磁碟名稱。ZONE_NAME:從PersistentVolume說明取得的磁碟可用區。PROJECT_ID:您的 Google Cloud 專案 ID。
區域性磁碟
如果您使用的是區域磁碟,請使用 Google Cloud CLI 執行
gcloud compute disks describe指令:gcloud compute disks describe DISK_NAME \ --region=REGION_NAME \ --project=PROJECT_ID更改下列內容:
DISK_NAME:從PersistentVolume說明取得的磁碟名稱。REGION_NAME:從PersistentVolume說明取得的磁碟區域。PROJECT_ID:您的 Google Cloud 專案 ID。
如果收到
Resource not found或The resource DISK_NAME was not found錯誤訊息,表示磁碟不存在。請依據最符合需求的狀況,使用下列其中一種方法解決問題:如果磁碟遭誤刪或命名錯誤,但您想保留資料或
PersistentVolumeClaim,或是PersistentVolume設定的磁碟名稱有誤,請使用下列任一方法解決問題:還原磁碟:如果磁碟有備份,請使用
PersistentVolume參照的完全相同名稱和位置還原磁碟。建立新磁碟:如果無法還原磁碟,請建立與
PersistentVolume設定中名稱和位置相同的新磁碟。
如果不再需要
PersistentVolumeClaim或PersistentVolume、相關資料或應用程式,建議移除不需要的實體:- 刪除
PersistentVolumeClaim:使用kubectl指令列工具執行kubectl delete pvc指令,刪除PersistentVolumeClaim:
kubectl delete pvc PVC_NAME -n NAMESPACE更改下列內容:
PVC_NAME:要刪除的PersistentVolumeClaim名稱。NAMESPACE:要刪除的PersistentVolumeClaim命名空間。
- 刪除
刪除
PersistentVolumeClaim後,PersistentVolume仍存在: 如果PersistentVolume的PersistentVolumeReclaimPolicy設為Delete,則刪除PersistentVolumeClaim時,PersistentVolume會自動刪除。如果persistentVolumeReclaimPolicy設為Retain,您必須在刪除PersistentVolumeClaim後手動刪除PersistentVolume。如要刪除PersistentVolume,請使用kubectl指令列工具執行kubectl delete pv指令:kubectl delete pv PV_NAME將
PV_NAME替換為要刪除的PersistentVolume名稱。
如果作業持續失敗,請聯絡 Cloud Customer Care 團隊,尋求進一步協助。