이 페이지에서는 Backup for GKE를 사용할 때 발생할 수 있는 스토리지 관련 오류, 작업을 실행할 때 고려해야 할 사항, 문제를 해결하는 단계를 설명합니다.
오류 100010105: Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist
존재하지 않는 디스크를 참조하여 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 영구 디스크를 지정하는 경우 오류가 발생할 수 있습니다. 하지만 PersistentVolume 구성에 지정된 이름과 위치가 있는 실제 디스크는 Google Cloud 프로젝트에서 찾을 수 없습니다. 따라서 Backup for GKE는 존재하지 않는 디스크의 백업을 진행할 수 없으며 오류가 발생합니다.
이 오류를 해결하려면 다음 안내를 따르세요.
문제가 있는
PersistentVolumeClaim및PersistentVolume을 식별합니다. 문제가 있는PersistentVolumeClaim과 연결된PersistentVolume의 이름이 모두 실패한 Backup for GKE 작업의state reason필드에 나열됩니다.PersistentVolumeClaim이름, 네임스페이스,PersistentVolume의 이름을 모두 문서화하는 것이 좋습니다.PersistentVolume을 검사합니다.PersistentVolume을 설명하려면 다음 명령어의 상태 이유 필드에서 식별한PersistentVolume이름을 사용하세요.kubectl describe pv PERSISTENTVOLUME_NAMEPERSISTENTVOLUME_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_NAMEPV_NAME을 삭제할PersistentVolume의 이름으로 바꿉니다.
작업이 계속 실패하면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.