本頁面說明使用 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 團隊聯絡,尋求進一步協助。