복원 중 리소스 충돌 처리


이 페이지에서는 복원 계획에서 네임스페이스 및 클러스터 범위 리소스에 대한 충돌 처리 전략을 구성하는 방법에 대해 설명합니다.

클러스터로 복원할 때 다음과 같은 시나리오에서 리소스 충돌이 발생할 수 있습니다.

  • 이미 프로비저닝된 리소스가 있는 기존 클러스터로 복원하는 경우
  • Kubernetes 리소스가 GitOps 또는 연산자와 같은 도구로 관리되는 경우

Backup for GKE는 복원 계획에서 지정할 수 있는 클러스터 범위 및 네임스페이스 리소스에 대한 충돌 처리를 정의하는 다양한 옵션을 제공합니다.

클러스터 범위 리소스의 복원 충돌 처리

클러스터 범위 리소스의 충돌을 처리하도록 복원 계획에서 다음 옵션을 구성할 수 있습니다.

  • 대상 클러스터에 리소스 유지(비파괴적): 대상 클러스터에 같은 이름의 리소스가 있는 경우 그대로 둡니다.
  • 대상 클러스터의 리소스 교체(파괴적): 대상 클러스터에 리소스가 이미 있는 경우 삭제하고 백업에서 복사본을 복원합니다.

gcloud

클러스터 범위 리소스의 충돌을 처리하도록 기존 복원 계획을 업데이트합니다.

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY

다음을 바꿉니다.

  • RESTORE_PLAN: 업데이트할 복원 계획의 이름
  • PROJECT_ID: Google Cloud 프로젝트의 ID
  • LOCATION: 리소스의 컴퓨팅 리전(예: us-central1)
  • CLUSTER_RESOURCE_CONFLICT_POLICY: 선택한 클러스터 리소스에 대해 복원 시 충돌을 처리하는 방법을 정의합니다. 다음 옵션 중 하나를 사용합니다.

    • use-existing-version: 복원 중인 리소스가 이미 대상 클러스터에 있는 경우 Backup for GKE는 기존 리소스를 유지합니다.
    • use-backup-version: 복원 중인 리소스가 이미 대상 클러스터에 있는 경우 Backup for GKE가 기존 리소스를 백업의 새 리소스로 바꿉니다.

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 클러스터 범위 리소스 충돌 정책을 업데이트합니다.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 복원 계획 탭을 클릭합니다.

  4. 복원 계획 이름을 클릭합니다.

  5. 세부정보 탭을 클릭합니다.

  6. 복원 구성 섹션에서 클러스터 범위 리소스 섹션으로 이동하여 수정을 클릭합니다.

  7. 충돌 처리 정의 섹션에서 충돌 처리 옵션을 선택합니다.

  8. 변경사항 저장을 클릭합니다.

네임스페이스 범위 리소스의 충돌 처리 복원

복원 계획에서 다음 옵션을 구성하여 네임스페이스 리소스에 대한 충돌을 관리할 수 있습니다. 다음과 같은 수준에서 네임스페이스 범위 리소스에 대한 충돌 처리를 지정할 수 있습니다.

  • 개별 리소스
  • 네임스페이스 및 보호되는 애플리케이션

다음은 개별 리소스의 충돌을 처리하는 데 사용 가능한 옵션입니다.

  • 병합 건너뛰기(비파괴적): 특정 리소스가 이미 있는 경우 백업에서 리소스를 복원하는 작업을 건너뜁니다.
  • 병합 교체 볼륨(파괴적): 특정 리소스가 이미 있는 경우, 해당 리소스 복원을 건너뛰고 볼륨 데이터 복원 정책을 사용하여 기본 영구 볼륨을 교체합니다. 병합 교체 볼륨은 데이터 전용 복원을 수행합니다.
  • 병합 교체(파괴적): 특정 리소스가 이미 있는 경우, 볼륨 데이터 복원 정책에 따라 해당 리소스를 백업 및 관련 볼륨 데이터의 리소스로 교체합니다.

다음은 NamespaceProtectedApplication에 속하는 모든 리소스의 충돌을 처리하는 데 사용할 수 있는 옵션입니다.

  • 충돌 시 실패(비파괴적): 네임스페이스 또는 ProtectedApplication가 대상 클러스터에 이미 존재하는 백업의 리소스를 복원 대상으로 지정한 경우 복원이 실패합니다.
  • 롤백(파괴적): 대상 클러스터에 클러스터로 복원할 대상으로 지정된 네임스페이스 또는 ProtectedApplication이 포함된 경우 새 리소스가 복원되기 전에 기존 리소스 그룹이 삭제됩니다.

gcloud

네임스페이스화된 리소스의 충돌을 처리하도록 기존 복원 계획을 업데이트합니다.

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE

다음을 바꿉니다.

  • RESTORE_PLAN: 업데이트할 복원 계획의 이름
  • PROJECT_ID: Google Cloud 프로젝트의 ID
  • LOCATION: 리소스의 컴퓨팅 리전(예: us-central1)
  • NAMESPACED_RESOURCE_RESTORE_MODE: 네임스페이스 범위 리소스의 복원 시간 충돌을 처리하는 방법을 정의합니다. 다음 옵션 중 하나를 사용합니다.

    • merge-skip-on-conflict: 충돌하는 개별 리소스를 건너뜁니다.
    • merge-replace-volume-on-conflict: 충돌하는 개별 리소스는 건너뛰지만 기본 영구 볼륨 데이터를 교체합니다.
    • merge-replace-on-conflict: 충돌하는 개별 리소스와 기본 영구 볼륨 데이터를 교체합니다.
    • fail-on-conflict: 네임스페이스 또는 ProtectedApplication 충돌 시 실패합니다.
    • delete-and-restore: 충돌하는 네임스페이스 또는 ProtectedApplication을 롤백합니다.

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 네임스페이스 리소스 충돌 정책을 업데이트합니다.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 복원 계획 탭을 클릭합니다.

  4. 복원 계획 이름을 클릭합니다.

  5. 세부정보 탭을 클릭합니다.

  6. 복원 구성 섹션에서 네임스페이스 범위 리소스 섹션으로 이동하여 수정을 클릭합니다.

  7. 충돌 처리 정의 섹션에서 충돌 처리 옵션을 선택합니다.

  8. 변경사항 저장을 클릭합니다.

다음 표에는 특정 일반적인 시나리오에 권장되는 충돌 처리 전략이 나와 있습니다.

Scenarios 네임스페이스화된 리소스에 권장되는 충돌 처리 사용 클러스터 범위 리소스에 권장되는 충돌 처리 사용
새 클러스터로 복원 충돌 시 실패 대상 클러스터에 리소스 유지
전체 네임스페이스 또는 ProtectedApplication 롤백 삭제 및 복원 해당 사항 없음
볼륨 없이 GitOps 관리형 클러스터로 복원 병합 건너뛰기 대상 클러스터에 리소스 유지
GitOps 관리형 클러스터의 데이터 전용 복원 병합 교체 볼륨 대상 클러스터에 리소스 유지
선택한 워크로드 및 볼륨 데이터 롤백 병합 교체 대상 클러스터의 리소스 교체

다음 단계