이 문서에서는 Backup for GKE를 사용하여 복원 작업을 실행할 때 발생할 수 있는 오류와 해당 코드를 설명합니다. 각 섹션에는 복원 오류를 해결하기 위한 작업을 실행할 때 고려해야 할 사항과 복원 작업 오류를 해결하는 방법에 관한 안내가 포함되어 있습니다.
오류 200010301: 사용할 수 없는 허용 웹훅 서비스로 인해 복원 작업을 완료할 수 없음
승인 웹훅 서비스(HTTP 콜백이라고도 함)를 사용할 수 없어 복원 작업을 완료하려는 시도가 실패하면 200010301
오류가 발생하며, 그 결과 다음과 같은 오류 메시지가 표시됩니다. 오류 메시지는 GKE API 서버가 리소스를 복원하려고 시도하는 중에 승인 웹훅에 연결하려고 했지만 웹훅을 지원하는 서비스를 사용할 수 없거나 찾을 수 없음을 나타냅니다.
resource [/example-group/ClusterSecretStore/example-store] restore failed:
Internal error occurred: failed calling webhook "example-webhook.io":
failed to call webhook: Post "https://example-webhook.example-namespace.svc:443/validate-example": service "example-webhook" not found.
이 오류는 ValidatingAdmissionWebhook
또는 MutatingAdmissionWebhook
GKE 리소스가 타겟 클러스터에서 활성 상태이지만 GKE API 서버가 웹훅에 구성된 엔드포인트에 도달할 수 없는 경우에 발생합니다. 허용 웹훅은 GKE API 서버에 대한 요청을 가로채며, 구성은 GKE API 서버가 요청을 쿼리하는 방법을 지정합니다.
웹훅의 clientConfig
는 승인 요청을 처리하는 백엔드를 지정하며, 이는 내부 클러스터 서비스 또는 외부 URL일 수 있습니다. 이 두 옵션 중에서 선택하는 것은 웹훅의 구체적인 운영 및 아키텍처 요구사항에 따라 달라집니다. 옵션 유형에 따라 다음과 같은 이유로 복원 작업이 실패했을 수 있습니다.
클러스터 내 서비스: GKE API 서버가 웹훅을 호출하려고 할 때 GKE 서비스와 지원 포드가 복원되지 않았거나 준비되지 않았습니다. 이는 클러스터 범위 웹훅 구성이 네임스페이스 서비스가 완전히
ready
상태가 되기 전에 적용되는 복원 작업 중에 발생합니다.외부 URL: GKE 클러스터와 외부 엔드포인트 간의 네트워크 연결 문제, DNS 변환 문제 또는 방화벽 규칙으로 인해 외부 엔드포인트를 일시적으로 사용할 수 없습니다.
이 오류를 해결하려면 다음 안내를 따르세요.
오류 메시지에 언급된 실패한 웹훅을 식별합니다. 예를 들면
failed calling webhook "..."
입니다.kubectl get validatingwebhookconfigurations
명령어를 실행하여 웹훅을 검사합니다.kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
WEBHOOK_NAME
을 오류 메시지에 표시된 웹훅 이름으로 바꿉니다.kubectl get mutatingwebhookconfigurations
명령어를 실행하여 웹훅을 검사할 수도 있습니다.kubectl get mutatingwebhookconfigurations WEBHOOK_NAME -o yaml
WEBHOOK_NAME
을 오류 메시지에 표시된 웹훅의 이름으로 바꿉니다.구성 유형에 따라 다음 문제 해결 단계를 수행하세요.
서비스 기반
clientConfig
GroupKindDependency
항목이 있는RestoreOrder
을 포함하도록RestorePlan
리소스를 수정하여 맞춤 복원 순서를 정의합니다. 이를 통해ValidatingWebhookConfiguration
또는MutatingWebhookConfiguration
전에Deployment
,StatefulSet
,Service
와 같은 웹훅을 지원하는 구성요소를 복원하고 준비할 수 있습니다.맞춤 복원 순서를 정의하는 방법은 복원 중에 리소스 복원 순서 지정을 참고하세요.
이 접근 방식은 서비스의 포드가
Service
객체가 생성된 후에도 완전히ready
상태로 전환되지 않기 때문에 실패할 수 있습니다. 실패의 또 다른 이유는 다른 애플리케이션에서 예기치 않게 웹훅 구성을 만들었기 때문일 수 있습니다. 또는 다음 단계에 따라 2단계 복원 작업을 실행할 수 있습니다.웹훅이 작동하는 데 필요한 특정 리소스(예:
Namespaces
,Deployments
,StatefulSets
,Services
)를 포함하는 세부적인 복원 필터로 복원 작업을 구성하여 백업을 사용하여Restore
리소스를 만듭니다.세분화된 복원 필터로 복원을 구성하는 방법에 대한 자세한 내용은 세분화된 복원 사용 설정을 참고하세요.
백업 작업을 위한 다른
Restore
리소스를 만들고 선택한 나머지 리소스를 구성합니다.
URL 기반
clientConfig
외부 HTTPS 엔드포인트를 확인하고 활성 상태이며 연결 가능하고 올바르게 작동하는지 확인합니다.
GKE 클러스터의 노드와 컨트롤 플레인에서 외부 URL로의 네트워크 연결이 있는지 확인합니다. 가상 프라이빗 클라우드, 온프레미스 또는 웹훅, 네트워크 정책, DNS 변환을 호스팅하는 클라우드 제공업체를 사용하는 경우 방화벽 규칙도 확인해야 할 수 있습니다.
복원 작업을 다시 시도합니다. 작업이 계속 실패하면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 200010302: 리소스 생성 요청이 거부되어 복원 작업을 완료할 수 없음
허용 웹훅이 리소스 생성 요청을 거부하여 복원 작업을 완료하려는 시도가 실패하면 오류 200010302
가 발생합니다. 이로 인해 활성 허용 웹훅이 요청을 가로채 맞춤 정책에 따라 거부했기 때문에 백업의 리소스를 타겟 클러스터에서 만들 수 없다는 오류 메시지가 표시됩니다.
[KubeError]; e.g. resource
[/example-namespace/example-api/ExampleResource/example-name]
restore failed: admission webhook "example-webhook.example.com" denied the request: {reason for denial}
이 오류는 타겟 GKE 클러스터에 설정된 구성으로 인해 발생합니다. 이 구성에는 리소스 생성 및 수정에 관한 특정 규칙을 적용하여 리소스 생성 요청을 차단하는 ValidatingAdmissionWebhook
또는 MutatingAdmissionWebhook
가 있습니다.
예를 들어 관련 리소스가 이미 클러스터에 있지만 충돌하기 때문에 웹훅이 리소스 생성을 방지합니다. 예를 들어 웹훅은 HorizontalPodAutoscaler
GKE API 리소스에서 이미 관리하는 경우 배포 생성을 거부할 수 있습니다.
이 오류를 해결하려면 다음 안내를 따르세요.
복원 작업이 실패할 때 발생하는 오류 메시지를 사용하여 요청을 거부하는 웹훅을 식별합니다. 예를 들어
webhook WEBHOOK_NAME denied the request
오류 메시지에는 다음 정보가 포함됩니다.웹훅 이름: 요청을 거부하는 웹훅의 이름입니다.
거부 이유: 요청이 거부된 구체적인 이유입니다.
kubectl get validatingwebhookconfigurations
명령어를 실행하여 웹훅을 검사합니다.kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
WEBHOOK_NAME
을 오류 메시지에서 확인한 웹훅의 이름으로 바꿉니다.kubectl get mutatingwebhookconfigurations
명령어를 실행하여 웹훅을 검사할 수도 있습니다.kubectl get mutatingwebhookconfigurations WEBHOOK_NAME -o yaml
WEBHOOK_NAME
을 오류 메시지에서 확인한 웹훅의 이름으로 바꿉니다.타겟 클러스터의 근본적인 문제를 해결합니다. 올바른 조치는 구체적인 오류에 따라 다릅니다. 예를 들어
HorizontalPodAutoscaler
충돌이 있는 경우 백업된 워크로드와 연결된 리소스가 생성되도록 복원을 실행하기 전에 대상 클러스터에서 기존HorizontalPodAutoscaler
을 삭제해야 합니다.복원 작업을 다시 시도합니다. 복원 작업이 계속 실패하면 추가 지원을 위해 Cloud Customer Care에 문의하세요.
오류 200060202: 워크로드 유효성 검사 중에 GKE 리소스가 누락되어 복원 작업을 완료할 수 없음
이 오류는 복원 작업의 워크로드 검증 단계에서 발생합니다. Backup for GKE에서 검증할 것으로 예상하는 GKE 리소스를 대상 클러스터에서 찾을 수 없어 다음 오류 메시지가 표시됩니다.200060202
Workload Validation Error: [KIND] "[NAME]" not found
예를 들면 Example: Workload Validation Error: pods "jenkins-0" not found
입니다.
이 오류는 복원 작업 프로세스의 일부로 Backup for GKE가 GKE 리소스를 성공적으로 생성하거나 업데이트했지만 검증 단계가 시작될 때 GKE 리소스의 워크로드 검증이 완료되기 전에 리소스가 복원 프로세스에 의해 처음 생성되거나 업데이트된 후 삭제되었기 때문에 하나 이상의 GKE 리소스가 더 이상 대상 클러스터에 없는 경우에 발생합니다. 이와 같은 오류는 다음과 같은 이유로 발생할 수 있습니다.
수동 삭제: 사용자 또는 관리자가
kubectl
또는 기타 도구를 사용하여 리소스를 수동으로 삭제했습니다. Google Cloud외부 자동화: 구성 동기화, ArgoCD, Flux, 맞춤 스크립트 또는 기타 클러스터 관리 도구와 같은 GitOps 컨트롤러가 저장소의 원하는 상태와 일치하도록 리소스를 되돌리거나 삭제했습니다.
GKE 컨트롤러: GKE 컨트롤러가 다른 리소스 또는 정책과 충돌하여 리소스를 삭제했거나
OwnerReference
체인으로 인해 가비지 컬렉션이 발생했거나owner
리소스가 삭제될 때 종속 리소스를 삭제하는 GKE의 자동 정리 프로세스가 발생했습니다.
이 오류를 해결하려면 다음 안내를 따르세요.
복원 작업이 완료되지 않을 때 표시되는 오류 메시지를 사용하여 누락된 리소스를 확인합니다.
다음 방법 중 하나를 사용하여 리소스가 속한 네임스페이스를 찾습니다.
GKE 감사 로그: 복원 작업을 시도할 때 생성된 GKE 감사 로그를 검사합니다. 리소스
Kind
및Name
에 대한 삭제 작업의 로그를 필터링할 수 있습니다. 감사 로그 항목에는 원래 네임스페이스가 포함됩니다.백업 세부정보: 복원 작업의 범위와 백업 콘텐츠를 검토합니다. 백업 색인에는 리소스의 원래 네임스페이스가 표시됩니다.
RestorePlan
에 선택한 네임스페이스에서 리소스를 복원하는 규칙을 지정하는TransformationRule
이 포함되어 있는지 확인할 수도 있습니다.네임스페이스 전체 검색:
kubectl get
명령어를 실행하여 모든 네임스페이스에서 리소스를 검색합니다.kubectl get KIND --all-namespaces | grep NAME
KIND
및NAME
을 오류 메시지의 값으로 바꿉니다. 리소스가 아직 있는 경우 이 명령어는 네임스페이스를 표시합니다.
kubectl get
명령어를 실행하여 삭제를 확인합니다.kubectl get KIND NAME -n [NAMESPACE]
KIND
및NAME
을 오류 메시지의 값으로 바꿉니다.not found
오류 메시지가 표시됩니다.다음 방법 중 하나를 사용하여 삭제 원인을 조사합니다.
GKE 감사 로그: 삭제 요청을 발행한 항목을 식별합니다. 예를 들어 사용자, 서비스 계정 또는 컨트롤러입니다.
구성된 자동화 검토: GitOps 또는 기타 자동화 도구를 사용하는 경우 로그와 상태를 확인하여 복원된 리소스에 간섭이 있었는지 확인합니다.
관련 이벤트 검사:
kubectl get events
명령어를 실행하여 확인된 네임스페이스에서 GKE 이벤트를 확인합니다.kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
NAMESPACE_NAME
를 네임스페이스 이름으로 바꿉니다.
이전 단계의 결과를 기반으로 리소스 삭제의 원인을 해결합니다. 예를 들어 충돌하는 자동화를 일시중지하거나, 잘못된 구성을 수정하거나, 사용자 권한을 조정할 수 있습니다.
다음 방법 중 하나를 사용하여 누락된 리소스를 복구합니다.
매니페스트 파일 다시 적용: 누락된 리소스의 매니페스트가 있는 경우 올바른 네임스페이스에 다시 적용할 수 있습니다.
세분화된 복원 실행: 세분화된 복원 작업을 실행하여 동일한 백업에서 누락된 리소스만 선택적으로 복원합니다. 이렇게 하면 올바른 네임스페이스를 지정할 수 있습니다. 세분화된 복원 작업을 실행하는 방법에 관한 자세한 내용은 세분화된 복원 사용 설정을 참고하세요.
복원 작업을 다시 시도합니다. 복원 작업이 계속 실패하면 추가 지원을 위해 Cloud Customer Care에 문의하세요.
오류 200060201: 워크로드 유효성 검사 시간 초과로 인해 복원 작업을 완료할 수 없음
클러스터에서 리소스가 생성된 후 예상 시간 제한 내에 복원된 하나 이상의 워크로드가 복원 작업 중에 완전히 ready
되지 않아 200060201
오류가 발생하며, 그 결과 다음 오류 메시지가 표시됩니다.
Workload Validation Error: Timedout waiting for workloads to be ready - [namespace/workload_name, ...]
이 오류는 Backup for GKE가 GKE 리소스 구성을 복원한 후 중요한 워크로드가 올바르게 작동하는지 확인하기 위해 유효성 검사 단계를 실행하기 때문에 발생합니다. Backup for GKE는 특정 워크로드가 ready
상태에 도달할 때까지 기다리지만 할당된 제한 시간 내에 하나 이상의 워크로드가 다음 준비 기준을 충족하지 않았습니다.
Pods
의 경우:status.Phase
이(가)Running
입니다.Deployments
의 경우:status.ReadyReplicas
이spec.Replicas
과 같음StatefulSets
의 경우:status.ReadyReplicas
이spec.Replicas
과 같음DaemonSets
의 경우:status.NumberReady
이status.DesiredNumberScheduled
과 같음
이 오류를 해결하려면 다음 안내를 따르세요.
워크로드 및
ready
상태로 전환되지 않은 네임스페이스를 나열하는 오류 메시지에서ready
상태가 아닌 워크로드를 확인합니다.kubectl describe
명령어를 실행하여 워크로드 상태를 검사하고 실패한 워크로드의 세부정보와 이벤트를 가져옵니다.kubectl describe WORKLOAD_TYPE WORKLOAD_NAME -n NAMESPACE_NAME kubectl get pods -n NAMESPACE_NAME -l SELECTOR_FOR_WORKLOAD
다음을 바꿉니다.
WORKLOAD_TYPE
: 워크로드 유형(예:Deployment
,StatefulSet
,DaemonSet
)WORKLOAD_NAME
: 특정 워크로드 인스턴스의 이름입니다.NAMESPACE_NAME
: 워크로드가 있는 네임스페이스SELECTOR_FOR_WORKLOAD
: 워크로드와 연결된Pods
를 찾는 라벨 선택기입니다. 예를 들면app=my-app
입니다.
Deployments
또는StatefulSets
워크로드 유형 내의 포드의 경우kubectl describe pod
명령어를 실행하여 개별 포드의 상태를 확인합니다.kubectl describe pod POD_NAME -n NAMESPACE_NAME
다음을 바꿉니다.
POD_NAME
: 특정 포드의 이름입니다.NAMESPACE_NAME
: 포드가 있는 네임스페이스입니다.
Events
섹션에서describe
출력의 이벤트와 로그를 분석하고 다음 정보를 찾습니다.ImagePullBackOff / ErrImagePull
: 컨테이너 이미지를 가져오는 데 문제가 있음을 나타냅니다.CrashLoopBackOff
: 컨테이너가 시작되고 비정상 종료됨을 나타냅니다.
Containers
섹션에서describe
출력의 컨테이너 로그를 분석하여kubectl logs
명령어를 실행하여 컨테이너 이름을 찾습니다.kubectl logs POD_NAME -n NAMESPACE_NAME -c CONTAINER_NAME
다음을 바꿉니다.
POD_NAME
: 특정 포드의 이름입니다.NAMESPACE_NAME
: 포드가 있는 네임스페이스입니다.CONTAINER_NAME
: 포드 내 컨테이너의 이름입니다.
describe
출력에 따르면 다음과 같은 이유로 포드가 리소스 출력에 표시되지 않을 수 있습니다.준비 상태 프로브 실패: 컨테이너의 준비 상태 프로브가 성공하지 않습니다.
리소스 문제: 클러스터에 CPU, 메모리 또는 기타 리소스가 부족하거나 할당량 한도에 도달했습니다.
init 컨테이너 문제: init 컨테이너의 실패로 인해 기본 컨테이너가 시작되지 않습니다.
구성 오류:
ConfigMaps
,Secrets
또는 환경 변수의 오류입니다.네트워크 문제:
Pods
가 필수 서비스와 통신할 수 없습니다.
GKE 클러스터 리소스를 확인하여 GKE 클러스터에 복원된 워크로드를 실행할 충분한 노드 용량, CPU, 메모리가 있는지 확인합니다. Autopilot 클러스터에서는 노드 자동 프로비저닝에 시간이 더 걸릴 수 있으므로 노드 확장 제한사항이나 오류가 있는지 확인하는 것이 좋습니다. 조사 결과를 바탕으로 근본적인 문제를 해결하고 워크로드가
ready
상태로 전환되지 못하도록 하는 문제를 해결합니다. 이 접근 방식에는 매니페스트 수정, 리소스 요청 또는 한도 조정, 네트워크 정책 수정, 종속 항목 충족 등이 포함될 수 있습니다.기본 문제가 해결된 후 워크로드가
ready
상태가 될 때까지 기다립니다. 복원 작업을 다시 실행할 필요가 없습니다.
문제가 계속되면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 200060102: 볼륨 유효성 검사 오류로 인해 복원 작업을 완료할 수 없음
200060102
오류는 VolumeBackup
에서 PersistentVolume
로 데이터를 복원하는 프로세스를 관리하는 하나 이상의 VolumeRestore
리소스가 복원 작업의 볼륨 검증 단계에서 failed
또는 deleting
상태로 전환되었기 때문에 발생합니다. 볼륨 복원에 실패하면 복원 리소스의 stateReason 필드에 다음 오류 메시지가 표시됩니다.
Volume Validation Error: Some of the volume restores failed - [projects/PROJECT_ID/locations/LOCATION/restorePlans/RESTORE_PLAN_ID/restores/RESTORE_ID/volumeRestores/VOLUME_RESTORE_ID (PVC: NAMESPACE/PVC_NAME), ...]
오류 메시지에는 대상 PersistentVolumeClaim
이름과 네임스페이스를 포함하여 실패한 VolumeRestore
의 전체 리소스 이름이 나열됩니다. 오류 메시지는 GKE용 백업이 VolumeBackups
에서 PersistentVolumes
를 프로비저닝하기 위해 VolumeRestore
리소스를 시작했을 때 영향을 받는 PersistentVolumeClaim
의 데이터 복원 프로세스가 완료되지 않았으며 스냅샷에서 기본 영구 디스크 생성이 실패했음을 나타냅니다. VolumeRestore
실패는 다음과 같은 이유로 발생할 수 있습니다.
할당량 부족: 프로젝트 또는 리전(예:
SSD_TOTAL_GB
)에 할당된 영구 디스크 할당량이 충분하지 않습니다.권한 문제: Backup for GKE에서 사용하는 서비스 계정에 디스크를 만들거나 스냅샷에 액세스하는 데 필요한 권한이 없습니다.
네트워크 문제: 디스크 생성 프로세스를 중단하는 일시적이거나 지속적인 네트워크 문제가 있습니다.
잘못된 스냅샷: 소스
VolumeBackup
또는 기본 영구 디스크 스냅샷이 손상되었거나 액세스할 수 없습니다.리소스 제약 조건: 다른 클러스터 리소스 제약 조건으로 인해 볼륨 프로비저닝이 방해됩니다.
내부 오류: Persistent Disk 서비스 내에 내부 문제가 있습니다.
이 오류를 해결하려면 다음 안내를 따르세요.
오류 메시지에 나열된 실패한
PersistentVolumeClaims
를 확인합니다. 오류 메시지에는 실패한VolumeRestore
객체의 전체 리소스 이름이 나열됩니다.gcloud beta container backup-restore volume-restores describe
명령어를 실행하여 실패한 각VolumeRestore
리소스의 세부정보를 가져옵니다.gcloud beta container backup-restore volume-restores describe VOLUME_RESTORE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_ID \ --restore=RESTORE_ID
다음을 바꿉니다.
VOLUME_RESTORE_ID
: 실패한VolumeRestore
리소스의 ID입니다.PROJECT_ID
: Google Cloud 프로젝트의 ID입니다.LOCATION
: 복원의 Google Cloud 위치입니다.RESTORE_PLAN_ID
: 복원 계획의 ID입니다.RESTORE_ID
: 복원 작업의 ID입니다.
출력에서
state
및stateMessage
필드를 검사하여 실패에 관한 세부정보를 확인합니다.kubectl get pvc
명령어를 실행하여 타겟PersistentVolumeClaim
의 상태를 검사합니다.kubectl get pvc PVC_NAME -n NAMESPACE_NAME -o yaml
다음을 바꿉니다.
PVC_NAME
:PersistentVolumeClaim
리소스의 이름입니다.NAMESPACE_NAME
:PersistentVolumeClaim
이 있는 네임스페이스입니다.
출력의
status.phase
섹션에Pending
단계가 표시되는지 확인합니다. 이 단계는PersistentVolumeClaim
이 아직PersistentVolume
에 바인딩되지 않았음을 의미하며, 이는VolumeRestore
가 실패한 경우 예상되는 동작입니다.YAML 출력의
Events
섹션에서 프로비저닝 실패와 관련된 메시지(예:ProvisioningFailed
)를 검사합니다.Cloud KMS error when using key projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied on resource 'projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY' (or it may not exist).
출력은 디스크 생성 중에 암호화 키에 액세스하는 동안 권한 문제가 있음을 나타냅니다. 키에 액세스할 수 있는
compute service agent
관련 권한을 제공하려면 Backup for GKE 문서의 CMEK 암호화 사용 설정에 설명된 안내를 따르세요.kubectl get events
명령어를 실행하여PersistentVolumeClaim
네임스페이스의 GKE 이벤트를 검토합니다. 여기에는PersistentVolume
컨트롤러 또는 CSI 드라이버의 자세한 오류 메시지가 제공됩니다.kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
NAMESPACE_NAME
을PersistentVolumeClaim
의 네임스페이스로 바꿉니다.FailedProvisioning
또는ExternalProvisioning
와 같은 키워드가 포함된PersistentVolumeClaim
이름과 관련된 이벤트를 식별합니다. 이벤트에는pd.csi.storage.gke.io
와 같은 스토리지 프로비저너의 오류도 포함될 수 있습니다.실패 시점의 디스크 생성 작업과 관련된 오류가 있는지 Cloud Logging에서 Cloud 감사 로그 및 영구 디스크 로그를 확인하여 영구 디스크 로그를 검사합니다.
생성된 오류 메시지를 기반으로 다음과 같은 기본 문제를 해결합니다.
(QUOTA_EXCEEDED}: Quota SSD_TOTAL_GB exceeded
와 같이 표시된 경우 영구 디스크 할당량을 늘립니다.IAM 권한을 확인하고 수정합니다.
네트워크 문제를 조사하고 해결합니다.
스냅샷 또는 영구 디스크 서비스 관련 문제를 해결하려면 Cloud Customer Care에 문의하세요.
PersistentVolumeClaim
이Pending
상태로 유지됩니다.복원 작업 프로세스는
VolumeRestore
를 자동으로 재시도하지 않습니다. 이 문제를 해결하려면 영향을 받는PersistentVolumeClaim
를 사용하는Deployment
또는StatefulSet
워크로드의 복원 작업을 트리거해야 합니다.세부 복원을 사용하여 실패한
PersistentVolumeClaim
와 연결된Deployment
또는StatefulSet
워크로드를 선택적으로 복원합니다. 이 방법을 사용하면 기본 문제가 해결된 경우 표준 GKE 메커니즘이PersistentVolumeClaim
생성 및 바인딩 프로세스를 다시 처리할 수 있습니다. 세분화된 복원에 관한 자세한 내용은 세분화된 복원 사용 설정을 참고하세요.
문제가 지속되거나 VolumeRestore
실패의 원인이 명확하지 않은 경우 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 200060101: 볼륨 유효성 검사 시간 초과로 인해 복원 작업을 완료할 수 없음
이 오류는 VolumeBackup
에서 데이터를 복원하는 작업을 관리하는 하나 이상의 VolumeRestore
리소스가 할당된 제한 시간 내에 succeeded
상태에 도달하지 않아 Backup for GKE가 대기를 중지할 때 복원 작업의 볼륨 검증 단계에서 발생합니다.200060101
다른 VolumeRestore
리소스도 불완전할 수 있습니다.
Restore
리소스의 stateReason
필드에 있는 오류 메시지는 제한 시간이 확인되었을 때 아직 succeeded
상태가 아니었던 첫 번째 VolumeRestore
리소스를 보여줍니다. 여기에는 특정 VolumeRestore
의 타겟 PersistentVolumeClaim
이름과 네임스페이스가 포함됩니다. 예를 들면 다음과 같습니다.
Volume Validation Error: Timed out waiting for volume restore [projects/PROJECT_ID/locations/LOCATION/restorePlans/RESTORE_PLAN_NAME/restores/RESTORE_NAME/volumeRestores/VOLUME_RESTORE_ID (PVC: PVC_NAMESPACE/PVC_NAME)]
Backup for GKE는 VolumeBackups
에서 PersistentVolumes
을 프로비저닝하기 위해 VolumeRestore
리소스를 시작합니다. 이 오류는 스냅샷에서 기본 영구 디스크를 생성하고 이후 PersistentVolumeClaim
을 PersistentVolume
에 바인딩하는 데 인용된 VolumeRestore
의 계산된 제한 시간보다 오래 걸렸음을 나타냅니다. 동일한 복원 작업의 다른 VolumeRestores
도 완료되지 않은 상태일 수 있습니다.
Backup for GKE 관점에서 타임아웃에 도달했더라도 언급된 VolumeRestore
리소스와 잠재적으로 VolumeRestore
리소스의 기본 디스크 생성 프로세스가 아직 진행 중이거나 실패했을 수 있습니다.
이 문제를 해결하려면 다음 안내를 따르세요.
오류 메시지에서 시간 초과된
PersistentVolumeClaim
이름과 네임스페이스를 확인합니다(예:(PVC: PVC_NAMESPACE/PVC_NAME)
).복원 작업과 연결된 모든
VolumeRestores
를 나열하여gcloud beta container backup-restore volume-restores list
명령어를 실행하여 현재 상태를 확인합니다.gcloud beta container backup-restore volume-restores list \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 ID입니다.LOCATION
: 복원의 Google Cloud 위치입니다.RESTORE_PLAN_NAME
: 복원 계획의 이름입니다.RESTORE_NAME
: 복원 작업의 이름입니다.
succeeded
상태가 아닌VolumeRestores
를 찾습니다.gcloud beta container backup-restore volume-restores describe
명령어를 실행하여 오류에 언급된VolumeRestore
와succeeded
상태가 아닌 다른VolumeRestores
에 관한 세부정보를 가져옵니다.gcloud beta container backup-restore volume-restores describe VOLUME_RESTORE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
다음을 바꿉니다.
VOLUME_RESTORE_ID
:VolumeRestore
리소스의 ID입니다.PROJECT_ID
: Google Cloud 프로젝트의 ID입니다.LOCATION
: 복원의 Google Cloud 위치입니다.RESTORE_PLAN_NAME
: 복원 계획의 이름입니다.RESTORE_NAME
: 복원 작업의 이름입니다.
state
및stateMessage
필드를 확인합니다.state
필드의 값은creating
또는restoring
일 가능성이 높습니다.stateMessage
필드는 더 많은 컨텍스트를 제공하고 타겟PersistentVolumeClaim
세부정보를 포함할 수 있습니다.kubectl get pvc
명령어를 실행하여 식별된 타겟PersistentVolumeClaims
의 상태를 검사합니다.kubectl get pvc PVC_NAME -n PVC_NAMESPACE -o yaml
다음을 바꿉니다.
PVC_NAME
:PersistentVolumeClaim
이름입니다.PVC_NAMESPACE
:PersistentVolumeClaim
의 네임스페이스입니다.
PersistentVolumeClaim's
status.phase
의 값은Pending
일 가능성이 높습니다.Events
섹션에서 다음 오류를 확인합니다.Waiting for first consumer to be created before binding
:StorageClass
에volumeBindingMode: WaitForFirstConsumer
이 있음을 나타냅니다.PersistentVolumeClaim
을 사용하는Pod
가 생성되고 예약될 때까지PersistentVolume
의 프로비저닝이 지연됩니다. 이 문제는 볼륨 프로비저닝 자체가 아니라Pod
일정과 관련이 있을 수 있습니다. 따라서PersistentVolumeClaim
을 사용하는Pods
가 예약되지 않거나 시작되지 않는 이유를 확인하는 것이 좋습니다.FailedProvisioning
또는 스토리지 프로비저너의 오류: 예:pd.csi.storage.gke.io
kubectl get events
명령어를 실행하여 관련 네임스페이스의 GKE 이벤트를 검토합니다.kubectl get events -n PVC_NAMESPACE --sort-by='.lastTimestamp'
PVC_NAMESPACE
을PersistentVolumeClaim
의 네임스페이스로 바꿉니다.프로비저닝 메시지 또는 오류와 같은
PersistentVolumeClaim
이름과 관련된 이벤트를 찾습니다.Cloud Logging에서 Cloud 감사 로그 및 영구 디스크 로그를 확인합니다.
creating
및restoring
상태의 모든VolumeRestores
상태를 모니터링합니다.문제가 해결되면
VolumeRestores
상태가succeeded
또는failed
상태로 전환될 수 있습니다.VolumeRestores
가succeeded
상태에 도달하면PersistentVolumeClaims
가Bound
이 되고 워크로드가 작동해야 합니다.VolumeRestore
가failed
상태로 전환되면 볼륨 유효성 검사 오류를 해결하기 위한 문제 해결 단계를 실행해야 합니다. 자세한 내용은 오류 200060102: 볼륨 유효성 검사 오류로 인해 복원 작업을 완료할 수 없음을 참고하세요.
VolumeRestores
이 과도한 시간 동안 creating
또는 restoring
상태로 유지되면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.