本頁說明使用 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 永久磁碟,就可能發生錯誤。不過,系統在 Cloud de Confiance by S3NS 專案中找不到 PersistentVolume 設定中指定的名稱和位置。因此,GKE 備份無法繼續備份不存在的磁碟,並會發生失敗。
如要解決這項錯誤,請按照下列指示操作:
找出有問題的
PersistentVolumeClaim和PersistentVolume。有問題的PersistentVolumeClaim和相關聯的PersistentVolume名稱都會列在 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,找出磁碟名稱和可用區。請使用下列任一方法,確認磁碟是否存在於專案中: Cloud de Confiance by S3NS
可用區磁碟
如果使用區域磁碟,請使用 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:您的 Cloud de Confiance by S3NS 專案 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:您的 Cloud de Confiance by S3NS 專案 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 團隊聯絡,尋求進一步協助。
錯誤 100010202:磁碟區快照建立失敗
如果 Compute Engine 永久磁碟快照建立失敗,就會發生錯誤 100010202,並顯示 Snapshotting volume failed 錯誤訊息。
如果磁碟在 GKE 備份服務啟動快照建立程序期間,與虛擬機器 (VM) 執行個體的連結狀態發生變化,Compute Engine 永久磁碟快照作業就會失敗。常見的觸發情境包括:
- 節點自動修復:重新建立健康狀態不良的節點,導致 Pod 重新排程,以及磁碟卸載和重新掛接。
- 節點升級:升級節點集區時,節點通常會排空並替換。Pod 會正常終止,並重新排定在新節點上的時間,觸發磁碟卸離和重新連接週期。
- 叢集自動調度資源:在縮減事件期間,如果叢集自動配置器移除節點,該節點上具有永久磁碟的任何 Pod 都會遭到驅逐,導致磁碟分離。如果這些 Pod 重新排定至其他位置,系統會在新的節點上附加磁碟。在擴充事件期間,新節點不會直接導致重新附加,但排定在這些節點上的 Pod 會觸發初始附加。
這是暫時性錯誤。磁碟附加作業穩定後,通常會在下次自動執行時成功備份。為避免叢集事件影響備份,請套用下列建議:
啟用智慧排程:使用智慧排程 (以 RPO 為準的排程) 設定備份方案。這樣一來,系統就能在指定時間範圍內自動重試暫時性失敗,不會影響備份計畫的整體復原點目標。
設定備份排除時段:如果您要執行節點集區升級或叢集大小調整作業,請在這些間隔期間,將備份排除時段新增至備份設定。這可確保 GKE 備份服務會暫停,並避免在叢集主動修改磁碟附件時排定快照。
重試手動備份:如果是手動或隨選備份,請在叢集事件完成後重試備份作業。
如果作業持續失敗,請與 Cloud Customer Care 團隊聯絡,尋求進一步協助。