Azure Backup을 사용하여 Azure Kubernetes Service 백업

이 문서에서는 AKS(Azure Kubernetes Service)를 구성하고 백업하는 방법을 설명합니다.

이제 Azure Backup을 사용하여 클러스터에 설치해야 하는 백업 확장을 사용하여 AKS 클러스터(클러스터 리소스 및 클러스터에 연결된 영구 볼륨)를 백업할 수 있습니다. Backup 자격 증명 모음은 이 Backup 확장을 통해 클러스터와 통신하여 백업 및 복원 작업을 수행합니다.

참고 항목

Azure Backup을 사용하는 AKS에 대한 자격 증명 모음 백업 및 지역 간 복원은 현재 미리 보기로 제공됩니다.

시작하기 전에

  • 현재 AKS 백업은 Azure Disk Storage 기반 영구 볼륨(CSI 드라이버에서 사용하도록 설정)만 지원합니다. 백업은 운영 데이터 저장소에만 저장됩니다(백업 데이터는 테넌트에만 저장되며 자격 증명 모음으로 이동되지 않음). Backup 자격 증명 모음 및 AKS 클러스터는 동일한 지역에 있어야 합니다.

  • AKS 백업은 Blob 컨테이너 및 리소스 그룹을 사용하여 백업을 저장합니다. Blob 컨테이너는 AKS 클러스터 리소스를 보유합니다. 영구 볼륨 스냅샷은 리소스 그룹에 저장됩니다. AKS 클러스터와 스토리지 위치는 동일한 지역에 있어야 합니다. blob 컨테이너를 만드는 방법을 알아봅니다.

  • 현재 AKS 백업은 하루에 한 번 백업을 지원합니다. 또한 하루에 더 많은 횟수의 백업(4시간, 8시간, 12시간 간격)도 지원합니다. 이 솔루션을 사용하면 복원용 데이터를 최대 360일 동안 유지할 수 있습니다. 백업 정책을 만드는 방법을 알아봅니다.

  • AKS 클러스터에서 백업 및 복원 작업을 구성하려면 Backup 확장을 설치해야 합니다. Backup 확장에 대해 자세히 알아봅니다.

  • 백업 구성 및 복원 작업을 시작하기 전에 Microsoft.ContainerServiceMicrosoft.KubernetesConfiguration, Microsoft.DataProtection, TrustedAccessPreview 기능 플래그가 구독에 등록되어 있는지 확인합니다.

  • AKS 백업 관련 백업 또는 복원 작업을 시작하기 전에 모든 필수 작업을 수행해야 합니다.

지원되는 시나리오, 제한 사항, 가용성에 대한 자세한 내용은 지원 매트릭스를 참조하세요.

Backup 자격 증명 모음 만들기

Backup 자격 증명 모음은 시간이 지나면서 처리된 복구 지점을 저장하는 관리 엔터티입니다. Backup 자격 증명 모음은 백업 작업을 수행하는 인터페이스도 제공합니다. 작업에는 주문형 백업 수행, 복원 수행 및 백업 정책 만들기가 포함됩니다. AKS 백업을 사용하려면 Backup 자격 증명 모음과 AKS 클러스터가 동일한 지역에 있어야 합니다. 백업 자격 증명 모음을 만드는 방법을 알아봅니다.

참고 항목

Backup 자격 증명 모음은 새로 지원되는 데이터 원본을 백업하는 데 사용되는 새 리소스입니다. Backup 자격 증명 모음은 Recovery Services 자격 증명 모음과 다릅니다.

Azure Backup을 사용하여 지역 가동 중단으로부터 AKS 클러스터를 보호하려는 경우:

  1. 자격 증명 모음을 만드는 동안 Backup Storage 중복성 매개 변수를 전역 중복으로 설정합니다. 자격 증명 모음에 대한 중복성이 설정되면 사용하지 않도록 설정할 수 없습니다.

    Screenshot shows how to enable the Backup Storage Redundance parameter.

  2. 자격 증명 모음 속성에서 지역 간 복원 매개 변수를 사용으로 설정합니다. 이 매개 변수를 사용하도록 설정하면 사용하지 않도록 설정할 수 없습니다.

    Screenshot shows how to enable the Cross Region Restore parameter.

  3. 자격 증명 모음 표준 데이터 저장소에 대한 보존 기간이 설정된 Backup 정책을 사용하여 Backup 인스턴스를 만듭니다. 이 데이터 저장소에 저장된 모든 복구 지점은 보조 지역에 있습니다.

    참고 항목

    자격 증명 모음 표준 데이터 저장소는 현재 미리 보기로 제공됩니다.

백업 정책 만들기

백업을 구성하기 전에 백업 빈도 및 백업 보존 기간을 정의하는 백업 정책을 만들어야 합니다.

백업을 구성할 때 백업 정책을 만들 수도 있습니다.

백업 정책을 만들려면:

  1. 백업 센터로 이동하여 정책을 선택한 다음, 새 백업 정책을 만듭니다.

    Screenshot that shows how to start creating a backup policy.

    또는 백업 센터>백업 정책>추가로 이동합니다.

  2. 데이터 원본 유형으로 Kubernetes Service를 선택하고 계속합니다.

    Screenshot that shows selecting the datasource type.

  3. 백업 정책의 이름(예: ‘기본 정책’)을 입력하고 백업 정책을 만들어야 하는 Backup 자격 증명 모음(사용자가 만든 새 Backup 자격 증명 모음)을 선택합니다.

    Screenshot that shows providing the backup policy name.

  4. 예약 + 보존 탭에서 운영 및 자격 증명 모음 계층(데이터 저장소라고도 함)의 백업 빈도백업을 보관해야 하는 기간을 정의합니다.

    백업 빈도: 백업 빈도(매시간 또는 매일)를 선택한 다음 백업의 보관 기간을 선택합니다.

    Screenshot that shows selection of backup frequency.

    보관 설정: 새 백업 정책에는 두 가지 보관 규칙이 있습니다.

    Screenshot that shows selection of retention period.

    매일 또는 매주 백업을 더 오랫동안 저장하기 위해 추가 보관 규칙을 만들 수도 있습니다.

    • 기본값: 이 규칙은 수행된 모든 운영 계층 백업의 기본 보관 기간을 정의합니다. 이 규칙은 편집만 가능하고 삭제할 수는 없습니다.

    • 매일 첫 번째 성공적인 백업 수행: 기본 규칙 외에도 그날의 첫 번째 성공적인 백업은 모두 작동 데이터 저장소 및 Vault 표준 자격 증명 모음에 보존될 수 있습니다. 이 규칙을 편집하고 삭제할 수 있습니다(운영 데이터 저장소에 백업을 보존하려는 경우).

      Screenshot that shows the retention configuration for Vault Tier and Operational Tier.

    또한 매주, 매월 및 매년 수행된 첫 번째 성공한 백업에 대해 유사한 규칙을 정의할 수 있습니다.

    참고 항목

    • 해당 일의 첫 번째 성공적인 백업 외에도 주, 월 및 연도의 첫 번째 성공적인 백업에 대한 보존 규칙을 정의할 수 있습니다. 우선 순위 측면에서 순서는 연도, 월, 주 및 일입니다.
    • 자격 증명 모음 표준 데이터 저장소는 현재 미리 보기로 제공됩니다. 이 기능을 사용하지 않으려면 보존 규칙을 편집하고 자격 증명 모음 표준 데이터 저장소 옆에 있는 확인란의 선택을 취소합니다.
    • 자격 증명 모음 계층에 저장된 백업은 주 지역을 사용할 수 없는 경우 AKS 클러스터를 보조 지역으로 복원하는 데 사용할 수 있는 보조 지역(Azure 쌍으로 연결된 지역)에도 복사할 수 있습니다. 이 기능을 선택하려면 지역 간 복원을 사용하도록 설정한 지역 중복 자격 증명 모음을 사용합니다.
  5. 백업 빈도 및 보존 설정이 구성되면 다음을 선택합니다.

    Screenshot that shows the completion of a backup policy creation.

  6. 검토 + 만들기 탭에서 정보를 검토한 후 만들기를 선택합니다.

백업 구성

AKS 백업을 사용하여 클러스터에 배포된 전체 클러스터 또는 특정 클러스터 리소스를 백업할 수 있습니다. 배포된 애플리케이션 일정과 보존 요구 사항 또는 보안 요구 사항에 따라 클러스터를 여러 번 보호할 수도 있습니다.

참고 항목

동일한 AKS 클러스터에 여러 백업 인스턴스를 설정하려면 다음을 수행합니다.

  • 다른 백업 정책을 사용하여 동일한 Backup 자격 증명 모음에서 백업을 구성합니다.
  • 다른 Backup 자격 증명 모음에서 백업을 구성합니다.

AKS 클러스터에 대한 백업을 구성하려면 다음을 수행합니다.

  1. Azure Portal에서 백업하려는 AKS 클러스터로 이동합니다.

  2. 리소스 메뉴에서 백업을 선택한 다음, 백업 구성을 선택합니다.

  3. 백업 또는 복원을 위해 AKS 클러스터를 준비하려면 확장 설치를 선택하여 클러스터에 Backup 확장을 설치합니다.

  4. 스토리지 계정 및 Blob 컨테이너를 입력으로 제공합니다.

    AKS 클러스터 백업은 이 Blob 컨테이너에 저장됩니다. 스토리지 계정은 클러스터와 동일한 지역 및 구독에 있어야 합니다.

    다음을 선택합니다.

    Screenshot that shows how to add storage and blob details for backup.

  5. 확장 설치 세부 정보를 검토한 다음, 만들기를 선택합니다.

    확장 설치가 시작됩니다.

    Screenshot that shows how to review and install the Backup extension.

  6. Backup 확장이 성공적으로 설치되면 백업 구성을 선택하여 AKS 클러스터에 대한 백업 구성을 시작합니다.

    Backup 센터에서 이 작업을 수행할 수도 있습니다.

    Screenshot that shows the selection of Configure Backup.

  7. Backup 자격 증명 모음을 선택합니다.

    Screenshot that shows how to choose a vault.

    백업 자격 증명 모음은 AKS 클러스터를 백업할 수 있도록 신뢰할 수 있는 액세스를 사용하도록 설정해야 합니다. 신뢰할 수 있는 액세스를 사용하도록 설정하려면 권한 부여를 선택합니다. 이미 사용하도록 설정된 경우 다음을 선택합니다.

    Screenshot that shows how to proceed to the next step after granting permission.

    참고 항목

    • 신뢰할 수 있는 액세스를 사용하도록 설정하기 전에 구독에서 Microsoft.ContainerServices 리소스 공급자에 대한 TrustedAccessPreview 기능 플래그를 사용하도록 설정합니다.
    • AKS 클러스터에 Backup 확장이 설치되어 있지 않은 경우 백업을 구성하는 설치 단계를 수행할 수 있습니다.
  8. 백업 일정 및 해당 보존 기간을 정의하는 백업 정책을 선택합니다. 그런 후 다음을 선택합니다.

    Screenshot that shows how to choose a backup policy.

  9. 데이터 원본 탭에서 추가/편집을 선택하여 백업 인스턴스 구성을 정의합니다.

    Screenshot that shows how to define the Backup Instance Configuration.

  10. 백업할 리소스 선택 창에서 백업할 클러스터 리소스를 정의합니다.

    백업 구성에 대해 자세히 알아봅니다.

    Screenshot that shows how to define the cluster resources for backup.

  11. 스냅샷 리소스 그룹에서 영구 볼륨(Azure Disk Storage) 스냅샷을 저장하는 데 사용할 리소스 그룹을 선택합니다. 그런 다음, 유효성 검사를 선택합니다.

    Screenshot that shows how to validate the snapshot resource group.

  12. 유효성 검사가 완료되면 스냅샷 리소스 그룹의 자격 증명 모음에 필요한 역할이 할당되지 않으면 오류가 나타납니다.

    Screenshot that shows a validation error when required permissions aren't assigned.

  13. 오류를 해결하려면 데이터 원본 이름에서 데이터 원본을 선택한 다음 누락된 역할 할당을 선택합니다.

    Screenshot that shows how to start assigning roles.

    다음 스크린샷은 선택할 수 있는 역할 목록을 보여 줍니다.

    Screenshot that shows how to select missing roles.

  14. 역할 할당이 완료되면 다음을 선택합니다.

    Screenshot that shows how to proceed to the backup configuration.

  15. 백업 구성을 선택합니다.

  16. 구성이 완료되면 다음을 선택합니다.

    Screenshot that shows how to finish backup configuration.

    백업 구성을 마치면 백업 인스턴스가 만들어집니다.

    Screenshot that shows the list of created backup instances.

    Screenshot that shows the backup instance details.

백업 구성

AKS 백업 기능의 일부로 모든 클러스터 리소스 또는 특정 클러스터 리소스를 백업할 수 있습니다. 백업 구성에 사용할 수 있는 필터를 사용하여 백업할 리소스를 선택할 수 있습니다. 정의된 백업 구성은 백업 인스턴스 이름의 값으로 참조됩니다. 다음 옵션을 사용하여 백업할 네임스페이스 값을 선택할 수 있습니다.

  • 모두(향후 네임스페이스 포함): 기본 클러스터 리소스를 사용가 백업될 경우 네임스페이스에 대한 모든 현재 및 미래 값을 백업합니다.

  • 목록에서 선택: 백업할 AKS 클러스터의 특정 네임스페이스 값을 선택합니다.

    백업할 특정 클러스터 리소스를 선택하려면 리소스에 연결된 레이블을 사용하여 백업에 리소스를 포함할 수 있습니다. 입력한 레이블이 있는 리소스만 백업됩니다. 여러 레이블을 사용할 수 있습니다.

    참고 항목

    배포되고 백업될 모든 단일 YAML 파일에 레이블을 추가해야 합니다. 여기에는 영구 볼륨 클레임과 같은 네임스페이스 범위 리소스와 영구 볼륨과 같은 클러스터 범위 리소스가 모두 포함됩니다.

    클러스터 범위 리소스, 비밀 및 영구 볼륨도 백업하려면 기타 옵션에서 항목을 선택합니다.

Screenshot that shows various backup configurations.

AKS 백업 중에 후크 사용

이 섹션에서는 백업 후크를 사용하여 MySQL이 배포된 AKS 클러스터의 애플리케이션 일치 스냅샷(MySQL 인스턴스를 포함하는 영구 볼륨)을 만드는 방법을 설명합니다.

AKS 백업에서 사용자 지정 후크를 사용하여 볼륨의 애플리케이션 일치 스냅샷을 수행할 수 있습니다. 볼륨은 컨테이너화된 워크로드로 배포된 데이터베이스에 사용됩니다.

백업 후크를 사용하여 볼륨의 애플리케이션 스냅샷을 만들 수 있도록 MySQL Pod를 고정 및 고정 해제하는 명령을 정의할 수 있습니다. 그런 다음, Backup 확장은 후크에서 명령을 실행하는 단계를 오케스트레이션하고 볼륨 스냅샷을 만듭니다.

MySQL이 배포된 볼륨의 애플리케이션 일치 스냅샷은 다음 작업을 수행하여 수행됩니다.

  1. 데이터베이스에서 새 트랜잭션이 수행되지 않도록 MySQL을 실행하는 Pod가 고정됩니다.
  2. 볼륨의 스냅샷을 백업으로 만듭니다.
  3. MySQL을 실행하는 Pod는 고정되지 않으므로 데이터베이스에서 트랜잭션을 다시 수행할 수 있습니다.

백업 구성 흐름의 일부로 백업 후크를 사용하도록 설정하여 MySQL을 백업하려면 다음을 수행합니다.

  1. 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
    
    
    
  2. 백업을 구성하기 전에 AKS 클러스터에 백업 후크 사용자 지정 리소스를 배포해야 합니다.

    스크립트를 배포하려면 다음 명령을 실행합니다.

    kubectl apply -f mysqlbackuphook.yaml
    
    
  3. 배포가 완료되면 AKS 클러스터에 대한 백업을 구성할 수 있습니다.

    참고 항목

    백업 구성의 일부로 사용자 지정 리소스 이름과 리소스가 입력으로 배포되는 네임스페이스를 제공해야 합니다.

    Screenshot that shows how to add the namespace for the backup configuration.

다음 단계