이 페이지에서는 Backup for GKE를 사용할 때 발생할 수 있는 권한 오류, 작업을 실행할 때 고려해야 할 사항, 오류 해결 방법을 설명합니다.
오류 100010101: PersistentVolumeClaim 백업 실패 - 테넌트 프로젝트의 IAM 바인딩 누락
테넌트 프로젝트의 Identity and Access Management 바인딩이 누락되어 PersistentVolumeClaim
백업 시도가 실패하면 100010101
오류가 발생하며, 이로 인해 Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project
라는 오류 메시지가 표시됩니다.
GKE용 백업은 GKE 클러스터의 영구 디스크 스냅샷을 만듭니다. 스냅샷은 소비자 프로젝트라고도 하는 Google Cloud 프로젝트에 있으며 Google Cloud 는 관리하는 테넌트 프로젝트 내에 스냅샷을 만듭니다. 테넌트 프로젝트는 자체 조직과 별도로 google.com
조직 내에 있습니다.
테넌트 프로젝트 내의 서비스 에이전트에는 클러스터의 PersistentVolumeClaim
에서 참조하는 영구 디스크를 암호화하는 고객 관리 암호화 키 (CMEK)를 사용할 수 있는 특정 권한이 필요합니다. 이 권한은 스냅샷 데이터를 암호화하고 복호화합니다. service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
서비스 에이전트에 디스크의 CMEK에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter
역할이 없으면 백업 작업이 실패합니다.
이 오류를 해결하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서
roles/cloudkms.admin
또는roles/owner
와 같이 Cloud Key Management Service 키의 IAM 정책을 수정할 수 있는 충분한 IAM 권한이 있는지 확인합니다.실패한 백업 작업의
status reason
메시지에 있는TENANT_PROJECT_NUMBER
값을 사용하여 테넌트 프로젝트의 Compute Engine 서비스 에이전트를 찾습니다. 예를 들면service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
입니다.암호화된 Persistent Disk에 사용된 다음 CMEK 정보를 찾습니다.
키 이름: 암호화 키의 이름입니다.
키링: 키가 있는 키링의 이름입니다.
위치: 키가 있는 Google Cloud 위치입니다. 예를 들면
global
또는us-central1
입니다.
테넌트 프로젝트의 Compute Engine 서비스 에이전트에 CMEK에 대한
roles/cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여하려면 Google Cloud CLI를 사용하여gcloud kms keys add-iam-policy-binding
명령어를 실행하세요.gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
다음을 바꿉니다.
KEY_NAME
: 암호화 키의 이름입니다.KEY_RING
: 키링의 이름입니다.LOCATION
: 키의 Google Cloud 위치입니다. 예를 들면global
또는us-central1
입니다.TENANT_PROJECT_NUMBER
: 실패한 백업 작업의status reason
메시지에서 가져온 테넌트 프로젝트 번호입니다.
명령어가 성공하면 다음과 같이 출력됩니다.
- members: - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter
백업 작업을 다시 테스트합니다. 그래도 작업이 실패하면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 100010104: PersistentVolumeClaim 백업 실패 - 스냅샷을 만드는 중에 조직 정책 제약 조건 위반
스냅샷 생성 중에 조직 정책 제약조건 위반으로 인해 PersistentVolumeClaim
백업 시도가 실패하면 오류 100010104
가 발생하여 Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot
라는 오류 메시지가 표시됩니다.
GKE용 백업은 GKE 클러스터의 영구 디스크 스냅샷을 만듭니다. 스냅샷은 소비자 프로젝트라고도 하는 Google Cloud 프로젝트에 있으며 Google Cloud에서 관리하는 테넌트 프로젝트 내에 생성됩니다. 테넌트 프로젝트는 자체 조직과 별도로 google.com
조직 내에 있습니다.
조직 정책에 따라 스토리지 리소스를 만들 수 있는 위치가 결정됩니다. Constraint constraints/compute.storageResourceUseRestrictions violated
오류는 허용된 조직 구조에 속하지 않는 테넌트 프로젝트에서 리소스 또는 스냅샷이 생성되어 정책을 위반하고 있음을 의미합니다. 테넌트 프로젝트가 Google 조직 내에 있으므로 정의된 정책에서 벗어나 백업이 실패합니다.
이 오류를 해결하려면 다음 안내를 따르세요.
constraints/compute.storageResourceUseRestrictions
제약조건을 구현하는 조직 정책을 찾습니다. Google Cloud 콘솔을 사용하여 조직 정책을 보는 방법에 대한 자세한 내용은 조직 정책 보기를 참고하세요.constraints/compute.storageResourceUseRestrictions
정책을 수정하여 Backup for GKE에서 사용하는folders/77620796932
테넌트 프로젝트 폴더를 허용 목록에 포함합니다.폴더를 허용 목록에 추가한 후 정책 변경사항을 저장합니다.
조직 정책이 업데이트되고 전파된 후 백업 작업을 다시 테스트합니다. 일반적으로 몇 분 정도 걸립니다. 백업은 스토리지 리소스 사용 제한을 위반하지 않고 진행되어야 합니다. 그래도 작업이 실패하면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 100010106: PersistentVolumeClaim 백업 실패 - Backup for GKE 서비스 에이전트의 IAM 바인딩이 누락됨
100010106
오류는 GKE용 백업 서비스 에이전트의 Identity and Access Management 바인딩이 누락되어 PersistentVolumeClaim
백업 시도가 실패할 때 발생하며, 그 결과 Failed to backup PVC - Missing IAM binding for Backup for GKE service agent
라는 오류 메시지가 표시됩니다.
GKE용 백업에는 볼륨 Persistent Disk를 암호화하고 복호화하기 위해 BackupPlan
의 고객 관리 암호화 키 (CMEK)를 사용할 권한이 필요합니다. Backup for GKE 서비스 에이전트에 BackupPlan
CMEK에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter
역할이 없으면 백업 작업이 실패합니다.
이 오류를 해결하려면 다음 안내를 따르세요.
프로젝트에 특정한 Google 관리 Backup for GKE 서비스 에이전트를 식별합니다. 예를 들면
service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com
입니다. 다음 방법을 사용하여 프로젝트 번호를 찾을 수 있습니다.Google Cloud 콘솔에서 Google Cloud 프로젝트 대시보드를 사용합니다.
Google Cloud CLI를 사용하여
gcloud projects describe
명령어를 실행합니다.gcloud projects describe PROJECT_ID –format="value(projectNumber)"
PROJECT_ID
을 프로젝트의 고유 이름으로 바꿉니다.
다음 CMEK 세부정보를 확인합니다.
키 이름: 암호화 키의 이름입니다.
키링: 키가 있는 키링의 이름입니다.
위치:
BackupPlan
CMEK가 있는 Google Cloud 위치입니다. 예를 들면global
또는us-central1
입니다.
CMEK에 대한
roles/cloudkms.cryptoKeyEncrypterDecrypter
역할을 Backup for GKE 서비스 에이전트에 부여하려면 Google Cloud CLI를 사용하여gcloud kms keys add-iam-policy-binding
명령어를 실행하세요.gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
다음을 바꿉니다.
KEY_NAME
: 암호화 키의 이름입니다.KEY_RING
: 키링의 이름입니다.LOCATION
: 키의 Google Cloud 위치입니다. 예를 들면global
또는us-central1
입니다.PROJECT_NUMBER
: Google Cloud 프로젝트 번호
Cloud Key Management Service 키에 필요한 Identity and Access Management 권한이 있는지 확인합니다. 예를 들면
roles/cloudkms.admin
또는roles/owner
입니다.부여된 권한이 있는지 확인합니다. 이전
gcloud kms keys add-iam-policy-binding
명령어의 출력에서 다음과 유사한 항목을 찾습니다.-members: -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter
필요한 권한을 부여한 후 백업 작업을 다시 테스트합니다. 작업이 완료되지 않으면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 100010107: PersistentVolumeClaim 백업 실패 - IAM 바인딩 누락 - 에이전트 서비스 계정 (KCP)
오류 100010107
는 Backup for GKE 백업 작업을 실행하려고 할 때 Google Kubernetes Engine 클러스터 서비스 에이전트가 고객 관리 암호화 키 (CMEK)에 액세스할 수 없어 Failed to backup PVC - Missing IAM binding - agent service account (KCP)
이라는 메시지가 표시될 때 발생합니다.
일반적으로 service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
형식인 Google Kubernetes Engine 클러스터 서비스 에이전트는 GKE 클러스터가 Google Cloud서비스와 상호작용하는 데 필수적입니다. 백업 계획에서 고객 관리 암호화 키 (CMEK)를 사용하는 경우
이 서비스 에이전트에는 CMEK를 사용하여 백업 데이터를 암호화하고 복호화할 수 있는 권한이 필요합니다. 백업 계획에 CMEK에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter
역할이 누락된 경우 클러스터에서 시작된 백업 작업이 permission denied
오류와 함께 실패합니다.
이 오류를 해결하려면 다음 문제 해결 안내를 따르세요.
Cloud Key Management Service 키의 IAM 정책을 수정할 수 있는 올바른 권한이 있는지 확인합니다. 예를 들면
cloudkms.admin
또는roles/owner
입니다.Google Kubernetes Engine 클러스터 서비스 에이전트를 식별합니다. 이 서비스 에이전트는 GKE 클러스터용으로 Google Cloud 에서 자동으로 생성하고 관리합니다. 예를 들면
service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
입니다. 전체 서비스 계정을 구성하려면 프로젝트 번호가 필요합니다. 다음 방법 중 하나를 사용하여 프로젝트 번호를 찾을 수 있습니다.Google Cloud 콘솔에서 Google Cloud 프로젝트 대시보드를 사용합니다.
Google Cloud CLI를 사용하여
gcloud projects describe
명령어를 실행합니다.gcloud projects describe PROJECT_ID –-format="value(projectNumber)"
PROJECT_ID
를 프로젝트 ID로 바꿉니다.
다음 CMEK 정보를 찾습니다.
키 이름: 암호화 키의 이름입니다.
키링: 키가 있는 키링의 이름입니다.
위치: 키가 있는 Google Cloud 위치입니다. 예를 들면
global
또는us-central1
입니다.
CMEK 수준에서
roles/cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다. Google Kubernetes Engine 서비스 에이전트에는 암호화 키에 대한 권한이 필요합니다. CMEK에roles/cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여하려면 Google Cloud CLI를 사용하여gcloud kms key add-iam-policy-binding
명령어를 실행합니다.gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
다음을 바꿉니다.
KEY_NAME
: 암호화 키의 이름입니다.KEY_RING
: 키링의 이름입니다.LOCATION
: 키의 Google Cloud 위치입니다. 예를 들면global
또는us-central1
입니다.PROJECT_NUMBER
: 프로젝트의 이름입니다.
출력은 다음과 비슷합니다.
- members: - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter ```
Backup for GKE 작업을 다시 시도합니다. 작업이 계속 실패하면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 100020101: PersistentVolumeClaim 백업 실패 - 지원되지 않는 PersistentVolume 유형에 바인딩된 PersistentVolumeClaim
PersistentVolumeClaim
이 지원되지 않는 PersistentVolume
유형에 바인딩되어 있기 때문에 PersistentVolumeClaim
을 백업하려고 시도할 때 오류 100020101
가 발생합니다. 이 오류로 인해 다음 오류 메시지가 표시됩니다.
PersistentVolumeClaims are bound to PersistentVolumes of unsupported types and cannot be backed up.
이 오류는 Backup for GKE 작업에서 Backup for GKE의 데이터 백업에 지원되지 않는 볼륨 유형을 사용하는 PersistentVolume
에 바인딩된 PersistentVolumeClaim
를 발견할 때 발생합니다. Backup for GKE는 주로 영구 디스크 볼륨의 데이터 백업을 지원합니다. PersistentVolumeClaim
가 영구 디스크가 아닌 PersistentVolume
에 바인드되면 PersistentVolumeClaim
의 데이터 백업 작업이 실패합니다.
이 오류를 해결하려면 다음 문제 해결 안내를 따르세요.
kubectl get pvc
명령어를 실행하여 모든PersistentVolumeClaims
와 이에 바인딩된PersistentVolumes
를 나열합니다. 이 목록을 검토하여 지원되지 않는 볼륨 유형으로 지원되는PersistentVolumes
를 확인합니다.kubectl get pvc --all-namespaces -o wide
kubectl describe pv
명령어를 실행하여 Backup for GKE에서 지원하지 않는 볼륨 유형으로 지원되는PersistentVolume
의 볼륨 유형을 확인합니다.kubectl describe pv PERSISTENT_VOLUME_NAME
다음을 바꿉니다.
PERSISTENT_VOLUME_NAME
: 지원되지 않는 볼륨 유형이 이전 단계의 출력에서VOLUME
열로 나열된PersistentVolume
의 이름입니다.출력에서
Source
및Driver
필드를 사용하여 볼륨 프로비저닝 도구 세부정보를 가져옵니다.지원되는 Persistent Disk의 경우: 출력은
Source.Driver: pd.csi.storage.gke.io
또는Source.Type:GCEPersistentDisk
와 비슷합니다.오류를 일으키는 지원되지 않는 유형의 경우: 출력은 영구 디스크가 아닌 드라이버입니다(예:
Source.Driver:filestore.csi.storage.gke.io
).
다음 방법 중 하나를 사용하여 오류를 해결하세요.
영구 디스크 볼륨으로 마이그레이션: 전체 데이터 백업에 이 방법을 사용하는 것이 좋습니다. 실제 볼륨 데이터를 백업해야 하는 경우 영구 디스크를 사용해야 합니다. 이 경우 지원되지 않는 볼륨 유형에서 새 영구 디스크 CSI 볼륨으로 데이터를 이전해야 합니다. 영구 디스크 볼륨 마이그레이션에 대한 도움이 필요하면 Cloud Customer Care에 문의하세요.
Backup for GKE에서 허용 모드 사용 설정: 지원되지 않는 볼륨에 데이터 백업이 필요하지 않은 경우 이 방법을 사용하는 것이 좋습니다. 데이터 마이그레이션이 불가능하거나 필요하지 않은 경우(예: 볼륨이 외부 서비스로 지원되고 복원 작업 중에 다시 연결하려는 경우) Backup for GKE 백업 계획을 구성하여 백업이 허용 모드로 진행되도록 할 수 있습니다. 허용 모드를 사용 설정하는 방법에 관한 자세한 내용은 백업 계획에서 허용 모드 사용 설정을 참고하세요.
Backup for GKE 작업을 다시 시도합니다. 오류를 해결하기 위해 선택한 방법에 따라 GKE용 백업 작업은 다음과 같이 작동합니다.
영구 디스크 볼륨으로 마이그레이션한 경우 데이터가 포함된 볼륨의 백업이 성공해야 합니다.
허용 모드를 사용 설정한 경우 백업 작업은 성공하지만 지원되지 않는 볼륨의 데이터는 백업되지 않습니다.
작업이 계속 실패하면 Cloud Customer Care에 문의하여 추가 지원을 받으세요.
오류 100020104: PersistentVolumeClaim 백업 실패 - PersistentVolumeClaim이 PersistentVolume에 바인딩되지 않음
PersistentVolumeClaim
이 PersistentVolume
에 바인딩되지 않아 PersistentVolumeClaim
백업 시도가 실패하면 오류 100020104
가 발생합니다. 이 오류로 인해 Failed to backup PVC - PVC Not Bound to a Persistent Volume
오류 메시지가 표시됩니다.
이 오류는 Backup for GKE 작업에서 PersistentVolume
에 성공적으로 바인딩되지 않은 PersistentVolumeClaim
를 백업하려고 할 때 발생합니다.
PersistentVolumeClaim
는 Pod와 같은 소비 워크로드에서 사용되고 이후 Backup for GKE로 백업되기 전에 PersistentVolume
에 바인드되어야 합니다. PersistentVolumeClaim
가 Pending
상태로 유지되면 적절한 PersistentVolume
를 사용할 수 없거나 프로비저닝하거나 바인드할 수 없음을 나타내며, 이로 인해 백업 작업이 실패합니다. PersistentVolumeClaim
가 바인딩되지 않은 상태로 유지되는 일반적인 이유는 연결된 StorageClass
가 WaitForFirstConsumer
바인딩 모드를 사용하지만 아직 포드나 다른 워크로드가 PersistentVolumeClaim
를 사용하려고 하지 않기 때문입니다.
이 오류를 해결하려면 다음 문제 해결 안내를 따르세요.
클러스터의 모든
PersistentVolumeClaims
상태를 확인하고 바인딩되지 않은PersistentVolumeClaim
를 식별하려면kubectl get pvc
명령어를 실행합니다.kubectl get pvc --all-namespaces | grep `Pending`
PersistentVolume
에 바인딩되지 않은PersistentVolumeClaim
를 식별한 후kubectl describe pvc
명령어를 실행하여 바인딩되지 않은PersistentVolumeClaim
에 관한 정보를 가져옵니다.kubectl describe pvc PVC_NAME -n NAMESPACE_NAME
다음을 바꿉니다.
PVC_NAME
: 백업에 실패한PersistentVolumeClaim
의 이름입니다.NAMESPACE_NAME
:PersistentVolumeClaim
가 있는 네임스페이스의 이름입니다.
설명이 표시된 후
Status
및Events
필드를 사용하여PersistentVolumeClaim
이PersistentVolume
에 바인딩되었는지 확인합니다.PersistentVolumeClaim
가PersistentVolume
에 바인딩되지 않는 이유를 여전히 확인할 수 없거나 확인된 문제를 해결할 수 없는 경우 백업 계획에서 허용 모드를 사용 설정하면 됩니다. 허용 모드를 사용 설정하는 방법에 관한 자세한 내용은 백업 계획에서 허용 모드 사용 설정을 참고하세요.