이 페이지에서는 더 세분화하여 복원할 리소스를 선택하는 방법을 설명합니다.
개요
세분화된 복원 기능을 사용하면 백업에서 리소스 하위 집합을 복원할 수 있습니다. 세분화된 복원 기능은 상위 복원 계획에 정의된 복원 범위를 세분화할 수 있는 유연성을 제공합니다. 세분화된 복원 범위가 상위 복원 계획에 정의된 원래 범위와 겹치지 않으면 리소스가 복원되지 않습니다.
세분화된 복원 기능은 개별 리소스 수준 충돌 처리 모드가 있는 복원 계획에 사용 설정할 수 있습니다.
- 병합 건너뛰기
- 병합 교체
- 병합 교체 볼륨
복원 계획이 충돌 시 실패 또는 롤백과 같은 네임스페이스 또는 ProtectedApplication 수준의 충돌 처리 모드를 사용하고 세분화된 복원을 사용 설정하려는 경우에는 지원되는 모드를 사용하도록 복원 계획을 업데이트하거나 새 복원 계획을 만들어야 합니다. 복원 모드에 대한 자세한 내용은 복원 중 리소스 충돌 처리를 참조하세요.
세분화된 복원을 사용하려면 포함 및 제외 필터에서 하나 이상의 필터 조건을 정의하면 됩니다. 복원을 위해 백업에서 특정 리소스 하위 집합을 선택하거나 하위 집합을 제외한 모든 리소스를 복원할 수 있습니다. 포함 필터와 제외 필터를 동시에 정의할 수 있습니다. 포함 필터를 사용하면 해당 필터와 일치하는 리소스만 복원됩니다. 제외 필터를 사용하는 경우 복원 프로세스에서 일치하는 리소스가 제외됩니다. 포함 필터와 제외 필터를 모두 지정하면 포함 필터가 먼저 적용된 후 제외 필터가 적용됩니다. 즉, 제외 필터가 포함 필터보다 우선 적용됩니다. 필터를 지정하지 않으면 상위 복원 계획에 정의된 전체 범위에서 복원이 수행됩니다.
필터 조건을 구성할 때 다음과 같은 4가지 선택적 속성이 있습니다.
- GroupKind: 리소스의 Kubernetes API 그룹 및 종류
- 네임스페이스: 네임스페이스 범위 리소스의 네임스페이스
- 리소스 이름: 리소스의 이름
- 라벨: Kubernetes 라벨을 기준으로 리소스를 선택하는 키-값 쌍
앞의 네 가지 속성을 조합하여 필터 조건을 정의할 수 있습니다. 속성을 두 개 이상 지정하면 속성 간의 관계가 AND
로 간주됩니다. 필터 조건에 정의된 모든 속성과 일치하면 리소스가 선택됩니다. 여러 필터 조건을 동시에 제공할 수도 있으며, 서로 다른 필터 조건 간의 관계는 OR
입니다. 제공된 모든 필터의 필터 조건과 일치하면 리소스가 선택됩니다.
시작하기 전에
세분화된 복원 필터로 복원 만들기
gcloud
세분화된 복원 필터를 사용하여 YAML 또는 JSON 파일을 만듭니다. 다음 YAML 예시를 사용할 수 있습니다.
exclusionFilters: - groupKind: resourceGroup: foo.io resourceKind: Bar name: name1 namespace: ns1 inclusionFilters: - labels: key1: value1 key2: value2
생성한 세분화된 복원 필터 파일을 사용하여 복원을 만듭니다.
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 프로젝트의 IDLOCATION
: 상위 복원 계획의 컴퓨팅 리전RESTORE_PLAN
: 복원이 파생된 상위 복원 계획의 이름BACKUP
: 복원할 백업(상위 복원 계획이projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP
로 참조하는 백업 계획 내에 있어야 함)FILTER_FILE
: 세분화된 복원 필터의 경로.
전체 옵션 목록은
gcloud beta container backup-restore restores create
문서를 참조하세요.
콘솔
다음 안내에 따라 Google Cloud 콘솔에서 세분화된 복원을 만듭니다.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
탐색 메뉴에서 Backup for GKE를 클릭합니다.
백업 탭을 클릭합니다.
백업 목록에서 복원할 백업을 선택하고 복원 설정을 클릭합니다.
이 백업에 적용되는 계획 목록에서 복원 계획을 선택합니다.
복원의 이름과 설명(선택사항)을 입력합니다.
세분화된 복원 사용 체크박스를 클릭합니다.
포함 필터 또는 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
복원 필터 조건에서 조건을 정의하고 변경사항 저장을 클릭합니다.
조건을 더 추가하려면 필터 조건 추가를 다시 클릭합니다.
복원을 클릭합니다.
세분화된 복원 필터 파일 예시
다음 예시는 Google Cloud CLI에서 사용하는 YAML 형식 또는 Google Cloud 콘솔의 단계별 안내에 제공됩니다.
단일 네임스페이스 범위 리소스 복원
이 예시에서는 세분화된 복원 InclusionFilters
을 사용하여 리소스를 선택하여 네임스페이스 webserver
에서 이름이 nginx-vars
인 리소스 종류 ConfigMap
를 복원합니다. core
그룹에서 리소스를 선택하려면 resourceGroup
에 빈 문자열을 사용합니다.
gcloud
inclusionFilters:
- groupKind:
resourceKind: ConfigMap
name: nginx-vars
namespace: webserver
콘솔
- 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
- 포함 필터 섹션에서 필터 조건 추가를 클릭합니다.
- 리소스 이름 필드에
nginx-vars
를 입력합니다. - 네임스페이스 필드에
webserver
를 입력합니다. - 객체 종류 필드에
ConfigMap
를 입력합니다. - 변경사항 저장을 클릭합니다.
단일 클러스터 범위 리소스 제외
이 예시에서는 리소스를 제외하기 위해 세분화된 복원 ExclusionFilters
을 사용하여 이름이 sc1
인 GroupKind storage.k8s.io/StorageClass
리소스 하나를 제외한 사용 가능한 모든 리소스를 복원합니다.
gcloud
exclusionFilters:
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
name: sc1
콘솔
- 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
- 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
- 리소스 이름 필드에
sc1
를 입력합니다. - API 그룹 필드에
storage.k8s.io
를 입력합니다. - 객체 종류 필드에
StorageClass
를 입력합니다. - 변경사항 저장을 클릭합니다.
라벨 2개를 사용하여 리소스 복원
이 예시에서는 세분화된 복원 InclusionFilters
을 사용하여 리소스를 선택하도록 key1:value1
및 key2:value2
라벨이 모두 있는 리소스를 복원합니다.
gcloud
inclusionFilters:
- labels:
key1: value1
key2: value2
콘솔
- 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
- 포함 필터 섹션에서 필터 조건 추가를 클릭합니다.
라벨 섹션에서 다음을 수행합니다.
- 라벨 추가를 클릭합니다.
- 키 1 필드에
key1
을 입력합니다. - 값 1 필드에
value1
을 입력합니다. - 라벨 추가를 클릭합니다.
- 키 2 필드에
key2
를 입력합니다. - 값 2 필드에
value2
를 입력합니다.
변경사항 저장을 클릭합니다.
일부 GroupKinds의 모든 리소스 제외
이 예시에서는 세분화된 복원 ExclusionFilters
를 사용하여 GroupKinds ConfigMap
및 storage.k8s.io/StorageClass
을 제외한 사용 가능한 모든 리소스를 복원함으로써 이들 두 GroupKinds를 제외합니다.
gcloud
exclusionFilters:
- groupKind:
resourceKind: ConfigMap
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
콘솔
- 세분화된 복원 필터로 복원 만들기 절차에서와 같이 세분화된 복원을 사용 설정합니다.
- 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
- 객체 종류 필드에
ConfigMap
를 입력합니다. - 변경사항 저장을 클릭합니다.
- 객체 종류 필드에
- 제외 필터 섹션에서 필터 조건 추가를 클릭합니다.
- API 그룹 필드에
storage.k8s.io
를 입력합니다. - 객체 종류 필드에
StorageClass
를 입력합니다. - 변경사항 저장을 클릭합니다.
- API 그룹 필드에