세분화된 복원 만들기

이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 백업의 세부 복원을 만드는 방법을 설명합니다.

세분화된 복원 기능을 사용하면 백업에서 리소스의 하위 집합을 복원할 수 있습니다. 이 기능을 사용하면 복원 계획에 정의된 복원 범위를 세부적으로 조정할 수 있습니다.

시작하기 전에

백업의 세부 복원을 만들려면 다음이 필요합니다.

  • 기존 백업입니다. 자세한 내용은 백업 집합 계획을 참고하세요.
  • 필요한 ID 및 액세스 역할:

    • PA 사용자의 경우:
      • 사용자 클러스터 백업 관리자: 사용자 클러스터의 백업 및 복원 계획과 같은 백업 리소스를 관리합니다. 조직 IAM 관리자에게 사용자 클러스터 백업 관리자 (user-cluster-backup-admin) 역할을 부여해 달라고 요청하세요.
    • AO 사용자의 경우:
      • 백업 생성자: 수동 백업을 만들고 복원합니다. 프로젝트 IAM 관리자에게 백업 생성자 (backup-creator) 역할을 부여해 달라고 요청하세요.
    • 자세한 내용은 역할 정의를 참고하세요.

세분화된 복원 만들기

세부 필터로 복원을 만들려면 다음 단계를 따르세요.

  1. 세분화된 복원 필터를 만듭니다. 다음 YAML 예시를 사용할 수 있습니다.

    inclusionFilters:
      - groupKind:
          group: foo.io
          kind: Bar
        name: name1
        namespace: ns1
    exclusionFilters:
      - labels:
          key1: value1
          key2: value2
    
  2. 기존 Backups에서 복원을 계획하는 ManualRestoreRequest 맞춤 리소스를 만듭니다. ManualRestoreRequest의 예는 다음과 같습니다.

    apiVersion: backup.gdc.goog/v1
    kind: ManualRestoreRequest
    metadata:
      name: RESTORE_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      restoreName: RESTORE_NAME
      restorePlanName: RESTORE_PLAN
      backupName: BACKUP_NAME
      filter:
        FINE_GRAINED_RESTORE_FILTERS
    

다음을 바꿉니다.

  • RESTORE_NAME: 만들려는 복원의 이름
  • PROJECT_NAMESPACE: GDC 프로젝트의 이름입니다.
  • RESTORE_PLAN: 이 복원이 파생된 복원 계획의 이름입니다.
  • BACKUP_NAME: 복원할 백업입니다. 이 백업은 복원 계획에서 참조하는 백업 계획과 연결되어야 합니다. 자세한 내용은 복원 집합 계획을 참고하세요.
  • FINE_GRAINED_RESTORE_FILTER: 세분화된 복원 필터입니다. 예시는 세부 복원 필터 예시를 참고하세요.

세분화된 복원 필터 예시

다음 예시는 Google Cloud CLI에서 사용하는 YAML 형식으로 제공됩니다.

단일 네임스페이스 범위 리소스 복원

이 예시에서는 세분화된 복원 inclusionFilters을 사용하여 리소스를 선택하여 네임스페이스 webserver에서 이름이 nginx-varsConfigMap 리소스를 복원합니다. 핵심 그룹의 리소스를 선택하려면 group 필드에 빈 문자열을 사용합니다.

filter:
  inclusionFilters:
  - groupKind:
      kind: ConfigMap
    name: nginx-vars
    namespace: webserver

단일 클러스터 범위 리소스 제외

이 예시에서는 세분화된 복원 exclusionFilters를 사용하여 이름이 sc1groupKind 리소스 하나를 제외한 사용 가능한 모든 리소스를 복원함으로써 해당 리소스를 제외합니다.

filter:
  exclusionFilters:
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass
    name: sc1

라벨이 두 개인 리소스 복원

이 예시에서는 세분화된 복원 inclusionFilters를 사용하여 key1:value1key2:value2 라벨이 모두 있는 리소스를 복원하여 리소스를 선택합니다.

filter:
  inclusionFilters:
  - labels:
      key1: value1
      key2: value2

일부 GroupKind의 모든 리소스 제외

이 예시에서는 세분화된 복원 exclusionFilters를 사용하여 ConfigMapstorage.k8s.io/StorageClassgroupKind 리소스를 제외한 사용 가능한 모든 리소스를 복원함으로써 이들 두 GroupKinds를 제외합니다.

filter:
  exclusionFilters:
  - groupKind:
      kind: ConfigMap
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass

다음 단계