Azure Backup을 사용하여 Azure Kubernetes Service 백업
이 문서에서는 AKS(Azure Kubernetes Service)를 구성하고 백업하는 방법을 설명합니다.
이제 Azure Backup을 사용하여 클러스터에 설치해야 하는 백업 확장을 사용하여 AKS 클러스터(클러스터 리소스 및 클러스터에 연결된 영구 볼륨)를 백업할 수 있습니다. Backup 자격 증명 모음은 이 Backup 확장을 통해 클러스터와 통신하여 백업 및 복원 작업을 수행합니다.
참고 항목
Azure Backup을 사용하는 AKS에 대한 자격 증명 모음 백업 및 지역 간 복원은 현재 미리 보기로 제공됩니다.
시작하기 전에
- 현재 AKS Backup은 CSI 드라이버에서 사용하도록 설정된 Azure Disk Storage 기반 영구 볼륨만 지원합니다. 백업은 운영 데이터 저장소에만 저장됩니다(백업 데이터는 테넌트에만 저장되며 자격 증명 모음으로 이동되지 않음). Backup 자격 증명 모음 및 AKS 클러스터는 동일한 지역에 있어야 합니다.
- AKS Backup은 Blob 컨테이너 및 리소스 그룹을 사용하여 백업을 저장합니다. Blob 컨테이너는 AKS 클러스터 리소스를 보유합니다. 영구 볼륨 스냅샷은 리소스 그룹에 저장됩니다. AKS 클러스터와 스토리지 위치는 동일한 지역에 있어야 합니다. blob 컨테이너를 만드는 방법을 알아봅니다.
- 현재 AKS Backup은 하루에 한 번 백업을 지원합니다. 또한 하루에 더 많은 횟수의 백업(4시간, 8시간, 12시간 간격)도 지원합니다. 이 솔루션을 사용하면 복원용 데이터를 최대 360일 동안 유지할 수 있습니다. 백업 정책을 만드는 방법을 알아봅니다.
- AKS 클러스터에 대한 백업 및 복원 작업을 구성하려면 Backup 확장을 설치해야 합니다. Backup 확장에 대해 자세히 알아봅니다.
- 백업 구성 및
Microsoft.ContainerService
복원 작업을 시작하기 전에 구독에 등록하고 있는지 확인Microsoft.KubernetesConfiguration
Microsoft.DataProtection
합니다. - AKS Backup에 대한 백업 또는 복원 작업을 시작하기 전에 모든 필수 구성 요소를 완료해야 합니다.
지원되는 시나리오, 제한 사항, 가용성에 대한 자세한 내용은 지원 매트릭스를 참조하세요.
Backup 자격 증명 모음 만들기
Backup 자격 증명 모음은 시간이 지나면서 처리된 복구 지점을 저장하는 관리 엔터티입니다. Backup 자격 증명 모음은 백업 작업을 수행하는 인터페이스도 제공합니다. 작업에는 주문형 백업 수행, 복원 수행 및 백업 정책 만들기가 포함됩니다. AKS Backup을 사용하려면 Backup 자격 증명 모음과 AKS 클러스터가 동일한 지역에 있어야 합니다. 백업 자격 증명 모음을 만드는 방법을 알아봅니다.
참고 항목
Backup 자격 증명 모음은 새로 지원되는 데이터 원본을 백업하는 데 사용되는 새 리소스입니다. Backup 자격 증명 모음은 Recovery Services 자격 증명 모음과 다릅니다.
Azure Backup을 사용하여 지역 간 중단으로부터 AKS 클러스터를 보호하려는 경우 지역 간 복원을 사용하도록 설정할 수 있습니다. 지역 간 복원을 사용하도록 설정하려면 다음을 수행해야 합니다.
자격 증명 모음을 만드는 동안 Backup Storage 중복성 매개 변수를 지역 중복으로 설정합니다. 자격 증명 모음에 대한 중복성이 설정되면 사용하지 않도록 설정할 수 없습니다.
자격 증명 모음 속성에서 지역 간 복원 매개 변수를 사용으로 설정합니다. 이 매개 변수를 사용하도록 설정하면 사용하지 않도록 설정할 수 없습니다.
자격 증명 모음 표준 데이터 저장소에 대한 보존 기간이 설정된 Backup 정책을 사용하여 Backup 인스턴스를 만듭니다. 이 데이터 저장소에 저장된 모든 복구 지점은 보조 지역에 있습니다.
백업 정책 만들기
백업을 구성하기 전에 백업 빈도 및 백업 보존 기간을 정의하는 Backup 정책을 만들어야 합니다.
백업 정책을 만들려면:
만든 Backup 자격 증명 모음으로 이동하여 백업 정책>추가 관리를>선택합니다.
백업 정책의 이름을 입력합니다.
데이터 원본 형식의 경우 Kubernetes Services를 선택합니다.
일정 + 보존 탭에서 백업 일정을 정의합니다.
- 백업 빈도: 백업 빈도(매시간 또는 매일)를 선택한 다음 백업의 보관 기간을 선택합니다.
- 보존 설정: 새 백업 정책에는 기본적으로 정의된 기본 규칙이 있습니다. 이 규칙을 편집할 수 있으며 삭제할 수 없습니다. 기본 규칙은 수행된 모든 작업 계층 백업에 대한 보존 기간을 정의합니다. 매일 또는 매주 백업을 더 오랫동안 저장하기 위해 추가 보관 규칙을 만들 수도 있습니다.
매일 또는 매주 수행되는 더 긴 기간 동안 백업을 저장하는 추가 보존 규칙을 만들 수도 있습니다.
참고 항목
- 해당 일의 첫 번째 성공적인 백업 외에도 주, 월 및 연도의 첫 번째 성공적인 백업에 대한 보존 규칙을 정의할 수 있습니다. 우선 순위 측면에서 순서는 연도, 월, 주 및 일입니다.
- 주 지역을 사용할 수 없는 경우 AKS 클러스터를 보조 지역으로 복원하는 데 사용할 수 있는 자격 증명 모음 계층에 저장된 보조 지역(Azure 쌍을 이루는 지역)의 백업을 복사할 수 있습니다. 이 기능을 선택하려면 지역 간 복원을 사용하도록 설정한 지역 중복 자격 증명 모음을 사용합니다.
백업 빈도 및 보존 설정이 구성되면 다음을 선택합니다.
검토 + 만들기 탭에서 정보를 검토한 후 만들기를 선택합니다.
Backup 확장 설치 및 백업 구성
AKS Backup을 사용하여 클러스터에 배포된 전체 클러스터 또는 특정 클러스터 리소스를 백업할 수 있습니다. 배포된 애플리케이션 일정과 보존 요구 사항 또는 보안 요구 사항에 따라 클러스터를 여러 번 보호할 수도 있습니다.
참고 항목
동일한 AKS 클러스터에 여러 백업 인스턴스를 설정하려면 다음을 수행합니다.
- 다른 백업 정책을 사용하여 동일한 Backup 자격 증명 모음에서 백업을 구성합니다.
- 다른 Backup 자격 증명 모음에서 백업을 구성합니다.
Backup 확장 설치
AKS 클러스터에 대한 백업을 구성하려면 다음을 수행합니다.
Azure Portal에서 백업하려는 AKS 클러스터로 이동합니다.
서비스 메뉴의 설정에서 백업을 선택합니다.
백업 또는 복원을 위해 AKS 클러스터를 준비하려면 확장 설치를 선택하여 클러스터에 Backup 확장을 설치합니다.
스토리지 계정 및 Blob 컨테이너를 입력으로 제공합니다.
AKS 클러스터 백업은 이 Blob 컨테이너에 저장됩니다. 스토리지 계정은 클러스터와 동일한 지역 및 구독에 있어야 합니다.
다음을 선택합니다. 확장 설치 세부 정보를 검토한 다음, 만들기를 선택합니다.
확장 설치가 시작됩니다.
백업 구성
백업 확장이 성공적으로 설치되면 백업 구성을 선택합니다.
이전에 만든 Backup 자격 증명 모음을 선택합니다. 백업 자격 증명 모음은 AKS 클러스터를 백업할 수 있도록 신뢰할 수 있는 액세스를 사용하도록 설정해야 합니다. 신뢰할 수 있는 액세스를 사용하도록 설정하려면 권한 부여를 선택합니다. 이미 사용하도록 설정된 경우 다음을 선택합니다.
백업 정책 탭에서 백업 및 해당 보존 기간에 대한 일정을 정의하는 백업 정책을 선택한 다음, 다음을 선택합니다.
데이터 원본 탭에서 추가/편집을 선택하여 백업 인스턴스 구성을 정의합니다.
백업할 리소스 선택 창에서 백업하려는 클러스터 리소스를 정의합니다.
백업 구성에 대해 자세히 알아봅니다.
스냅샷 리소스 그룹의 경우 영구 볼륨(Azure Disk Storage) 스냅샷을 저장하는 데 사용할 리소스 그룹을 선택한 다음 유효성 검사를 선택합니다.
유효성 검사가 완료되면 스냅샷 리소스 그룹의 자격 증명 모음에 필요한 역할이 할당되지 않으면 오류가 나타납니다.
오류를 해결하려면 데이터 원본 이름 아래에서 데이터 원본에 대한 확인란을 선택한 다음 누락된 역할 할당을 선택합니다.
역할 할당이 완료되면 다음>백업 구성을 선택합니다.
백업 구성
AKS용 Azure Backup을 사용하면 백업하려는 AKS 클러스터 내에서 애플리케이션 경계를 정의할 수 있습니다. 백업 구성 내에서 사용할 수 있는 필터를 사용하여 백업할 리소스를 선택하고 사용자 지정 후크를 실행할 수 있습니다. 정의된 백업 구성은 백업 인스턴스 이름의 값으로 참조됩니다. 아래 필터는 애플리케이션 경계를 정의하는 데 사용할 수 있습니다.
백업할 네임스페이스 선택을 선택합니다. 클러스터의 모든 기존 네임스페이스와 이후 네임스페이스를 백업하려면 모두 선택하거나 백업할 특정 네임스페이스를 선택할 수 있습니다.
Backup 구성에서 다음 네임스페이스를 건너뜁니다.
kube-system
kube-node-lease
kube-public
백업할 클러스터 리소스를 선택하는 데 사용할 수 있는 필터를 보려면 추가 리소스 설정을 확장합니다. 다음 범주에 따라 리소스를 백업하도록 선택할 수 있습니다.
- 레이블: 리소스 형식에 할당하는 레이블을 사용하여 AKS 리소스를 필터링할 수 있습니다. 키/값 쌍 형식으로 레이블을 입력합니다. 논리를 사용하여
AND
여러 레이블을 결합할 수 있습니다. 예를 들어,env=prod;tier!=web
레이블을 입력하면 프로세스는env
키와prod
값이 있는 레이블과 값이web
가 아닌tier
키가 있는 레이블이 있는 리소스를 선택합니다. - API 그룹: AKS API 그룹 및 종류를 제공하여 리소스를 포함할 수도 있습니다. 예를 들어, 배포와 같은 AKS 리소스 백업을 선택할 수 있습니다. 여기에서 정의된 Kubernetes API 그룹 목록에 액세스할 수 있습니다.
- 기타 옵션: 클러스터 범위 리소스, 영구 볼륨 및 비밀에 대한 백업을 사용하거나 사용하지 않도록 설정할 수 있습니다. 클러스터 범위 리소스 및 영구 볼륨은 기본적으로 사용하도록 설정됩니다.
- 레이블: 리소스 형식에 할당하는 레이블을 사용하여 AKS 리소스를 필터링할 수 있습니다. 키/값 쌍 형식으로 레이블을 입력합니다. 논리를 사용하여
참고 항목
배포되고 백업될 모든 단일 YAML 파일에 레이블을 추가해야 합니다. 여기에는 영구 볼륨 클레임과 같은 네임스페이스 범위 리소스와 영구 볼륨과 같은 클러스터 범위 리소스가 모두 포함됩니다.
AKS 백업 중에 후크 사용
이 섹션에서는 백업 후크를 사용하여 MySQL이 배포된 AKS 클러스터의 애플리케이션 일치 스냅샷(MySQL 인스턴스를 포함하는 영구 볼륨)을 만드는 방법을 설명합니다.
AKS 백업에서 사용자 지정 후크를 사용하여 볼륨의 애플리케이션 일치 스냅샷을 수행할 수 있습니다. 볼륨은 컨테이너화된 워크로드로 배포된 데이터베이스에 사용됩니다.
백업 후크를 사용하여 볼륨의 애플리케이션 스냅샷을 만들 수 있도록 MySQL Pod를 고정 및 고정 해제하는 명령을 정의할 수 있습니다. 그런 다음, Backup 확장은 후크에서 명령을 실행하는 단계를 오케스트레이션하고 볼륨 스냅샷을 만듭니다.
MySQL이 배포된 볼륨의 애플리케이션 일치 스냅샷은 다음 작업을 수행하여 수행됩니다.
- 데이터베이스에서 새 트랜잭션이 수행되지 않도록 MySQL을 실행하는 Pod가 고정됩니다.
- 볼륨의 스냅샷을 백업으로 만듭니다.
- MySQL을 실행하는 Pod는 고정되지 않으므로 데이터베이스에서 트랜잭션을 다시 수행할 수 있습니다.
백업 구성 흐름의 일부로 백업 후크를 사용하도록 설정하여 MySQL을 백업하려면 다음을 수행합니다.
PostgreSQL Pod를 고정하고 고정 해제하는 명령을 사용하여 백업 후크에 대한 사용자 지정 리소스를 작성합니다.
미리 정의된 명령이 있는 다음 샘플 YAML 스크립트 postgresbackuphook.yaml을 사용할 수도 있습니다.
apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1 kind: BackupHook metadata: # BackupHook CR Name and Namespace name: bkphookname0 namespace: default spec: # BackupHook Name. This is the name of the hook that will be executed during backup. # compulsory name: hook1 # Namespaces where this hook will be executed. includedNamespaces: - hrweb excludedNamespaces: labelSelector: # PreHooks is a list of BackupResourceHooks to execute prior to backing up an item. preHooks: - exec: command: - /sbin/fsfreeze - --freeze - /var/lib/postgresql/data container: webcontainer onError: Continue # PostHooks is a list of BackupResourceHooks to execute after backing up an item. postHooks: - exec: container: webcontainer command: - /sbin/fsfreeze - --unfreeze onError: Fail timeout: 10s
백업을 구성하기 전에 AKS 클러스터에 백업 후크 사용자 지정 리소스를 배포해야 합니다.
스크립트를 배포하려면 다음 명령을 실행합니다.
kubectl apply -f mysqlbackuphook.yaml
배포가 완료되면 AKS 클러스터에 대한 백업을 구성할 수 있습니다.
참고 항목
백업 구성의 일부로 사용자 지정 리소스 이름과 리소스가 입력으로 배포되는 네임스페이스를 제공해야 합니다.