세분화된 복원 사용 설정


이 페이지에서는 더 세분화하여 복원할 리소스를 선택하는 방법을 설명합니다.

개요

세분화된 복원 기능을 사용하면 백업에서 리소스 하위 집합을 복원할 수 있습니다. 세분화된 복원 기능은 상위 복원 계획에 정의된 복원 범위를 세분화할 수 있는 유연성을 제공합니다. 세분화된 복원 범위가 상위 복원 계획에 정의된 원래 범위와 겹치지 않으면 리소스가 복원되지 않습니다.

세분화된 복원 기능은 개별 리소스 수준 충돌 처리 모드가 있는 복원 계획에 사용 설정할 수 있습니다.

  • 병합 건너뛰기
  • 병합 교체
  • 병합 교체 볼륨

복원 계획이 충돌 시 실패 또는 롤백과 같은 네임스페이스 또는 ProtectedApplication 수준의 충돌 처리 모드를 사용하고 세분화된 복원을 사용 설정하려는 경우에는 지원되는 모드를 사용하도록 복원 계획을 업데이트하거나 새 복원 계획을 만들어야 합니다. 복원 모드에 대한 자세한 내용은 복원 중 리소스 충돌 처리를 참조하세요.

세분화된 복원을 사용하려면 포함 및 제외 필터에서 하나 이상의 필터 조건을 정의하면 됩니다. 복원을 위해 백업에서 특정 리소스 하위 집합을 선택하거나 하위 집합을 제외한 모든 리소스를 복원할 수 있습니다. 포함 필터와 제외 필터를 동시에 정의할 수 있습니다. 포함 필터를 사용하면 해당 필터와 일치하는 리소스만 복원됩니다. 제외 필터를 사용하는 경우 복원 프로세스에서 일치하는 리소스가 제외됩니다. 포함 필터와 제외 필터를 모두 지정하면 포함 필터가 먼저 적용된 후 제외 필터가 적용됩니다. 즉, 제외 필터가 포함 필터보다 우선 적용됩니다. 필터를 지정하지 않으면 상위 복원 계획에 정의된 전체 범위에서 복원이 수행됩니다.

필터 조건을 구성할 때 다음과 같은 4가지 선택적 속성이 있습니다.

  • GroupKind: 리소스의 Kubernetes API 그룹 및 종류
  • 네임스페이스: 네임스페이스 범위 리소스의 네임스페이스
  • 리소스 이름: 리소스의 이름
  • 라벨: Kubernetes 라벨을 기준으로 리소스를 선택하는 키-값 쌍

앞의 네 가지 속성을 조합하여 필터 조건을 정의할 수 있습니다. 속성을 두 개 이상 지정하면 속성 간의 관계가 AND로 간주됩니다. 필터 조건에 정의된 모든 속성과 일치하면 리소스가 선택됩니다. 여러 필터 조건을 동시에 제공할 수도 있으며, 서로 다른 필터 조건 간의 관계는 OR입니다. 제공된 모든 필터의 필터 조건과 일치하면 리소스가 선택됩니다.

시작하기 전에

복원 세트를 계획합니다.

세분화된 복원 필터로 복원 만들기

gcloud

  1. 세분화된 복원 필터를 사용하여 YAML 또는 JSON 파일을 만듭니다. 다음 YAML 예시를 사용할 수 있습니다.

    exclusionFilters:
    - groupKind:
        resourceGroup: foo.io
        resourceKind: Bar
      name: name1
      namespace: ns1
    inclusionFilters:
    - labels:
        key1: value1
        key2: value2
    
  2. 생성한 세분화된 복원 필터 파일을 사용하여 복원을 만듭니다.

    gcloud beta container backup-restore restores create RESTORE \
        --project=PROJECT_ID \
        --location=LOCATION \
        --restore-plan=RESTORE_PLAN \
        --backup=BACKUP \
        --filter-file=FILTER_FILE
    

    다음을 바꿉니다.

    • RESTORE: 만들려는 인스턴스의 이름
    • PROJECT_ID: Google Cloud 프로젝트의 ID
    • LOCATION: 상위 복원 계획의 컴퓨팅 리전
    • RESTORE_PLAN: 복원이 파생된 상위 복원 계획의 이름
    • BACKUP: 복원할 백업(상위 복원 계획이 projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP로 참조하는 백업 계획 내에 있어야 함)

    • FILTER_FILE: 세분화된 복원 필터의 경로.

    전체 옵션 목록은 gcloud beta container backup-restore restores create 문서를 참조하세요.

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 세분화된 복원을 만듭니다.

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

    Google Kubernetes Engine으로 이동

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

  3. 백업 탭을 클릭합니다.

  4. 백업 목록에서 복원할 백업을 선택하고 복원 설정을 클릭합니다.

  5. 이 백업에 적용되는 계획 목록에서 복원 계획을 선택합니다.

  6. 복원의 이름설명(선택사항)을 입력합니다.

  7. 세분화된 복원 사용 체크박스를 클릭합니다.

  8. 포함 필터 또는 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.

  9. 복원 필터 조건에서 조건을 정의하고 변경사항 저장을 클릭합니다.

  10. 조건을 더 추가하려면 필터 조건 추가를 다시 클릭합니다.

  11. 복원을 클릭합니다.

세분화된 복원 필터 파일 예시

다음 예시는 Google Cloud CLI에서 사용하는 YAML 형식 또는 Google Cloud 콘솔의 단계별 안내에 제공됩니다.

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

이 예시에서는 세분화된 복원 InclusionFilters을 사용하여 리소스를 선택하여 네임스페이스 webserver에서 이름이 nginx-vars인 리소스 종류 ConfigMap를 복원합니다. core 그룹에서 리소스를 선택하려면 resourceGroup에 빈 문자열을 사용합니다.

gcloud

  inclusionFilters:
  - groupKind:
      resourceKind: ConfigMap
    name: nginx-vars
    namespace: webserver

콘솔

  1. 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
  2. 포함 필터 섹션에서 필터 조건 추가를 클릭합니다.
  3. 리소스 이름 필드에 nginx-vars를 입력합니다.
  4. 네임스페이스 필드에 webserver를 입력합니다.
  5. 객체 종류 필드에 ConfigMap를 입력합니다.
  6. 변경사항 저장을 클릭합니다.

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

이 예시에서는 리소스를 제외하기 위해 세분화된 복원 ExclusionFilters을 사용하여 이름이 sc1인 GroupKind storage.k8s.io/StorageClass 리소스 하나를 제외한 사용 가능한 모든 리소스를 복원합니다.

gcloud

exclusionFilters:
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass
  name: sc1

콘솔

  1. 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
  2. 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
  3. 리소스 이름 필드에 sc1를 입력합니다.
  4. API 그룹 필드에 storage.k8s.io를 입력합니다.
  5. 객체 종류 필드에 StorageClass를 입력합니다.
  6. 변경사항 저장을 클릭합니다.

라벨 2개를 사용하여 리소스 복원

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

gcloud

inclusionFilters:
- labels:
    key1: value1
    key2: value2

콘솔

  1. 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
  2. 포함 필터 섹션에서 필터 조건 추가를 클릭합니다.
  3. 라벨 섹션에서 다음을 수행합니다.

    1. 라벨 추가를 클릭합니다.
    2. 키 1 필드에 key1을 입력합니다.
    3. 값 1 필드에 value1을 입력합니다.
    4. 라벨 추가를 클릭합니다.
    5. 키 2 필드에 key2를 입력합니다.
    6. 값 2 필드에 value2를 입력합니다.
  4. 변경사항 저장을 클릭합니다.

일부 GroupKinds의 모든 리소스 제외

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

gcloud

exclusionFilters:
- groupKind:
    resourceKind: ConfigMap
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass

콘솔

  1. 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
  2. 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
    1. 객체 종류 필드에 ConfigMap를 입력합니다.
    2. 변경사항 저장을 클릭합니다.
  3. 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
    1. API 그룹 필드에 storage.k8s.io를 입력합니다.
    2. 객체 종류 필드에 StorageClass를 입력합니다.
    3. 변경사항 저장을 클릭합니다.