다음을 통해 공유


PowerShell을 사용하여 Azure Kubernetes Service 복원

이 문서에서는 Azure PowerShell을 사용하여 Azure Backup이 만든 복원 지점에서 Azure Kubernetes 클러스터를 복원하는 방법을 설명합니다.

Azure Backup은 백업 확장을 사용하여 클러스터 리소스 및 연결된 영구 볼륨을 포함한 AKS 클러스터 백업을 지원합니다. 백업 자격 증명 모음이 백업 및 복원 작업을 수행하기 위해 통신할 수 있도록 클러스터에 이 확장을 설치해야 합니다.

동일한 AKS 클러스터에서 OLR(Original-Location Recovery) 또는 다른 AKS 클러스터의 ALR(대체 위치 복구)을 수행할 수 있습니다. ILR(항목 수준 복구)을 사용하면 백업에서 복원할 특정 항목을 선택할 수 있습니다.

참고 항목

복원 작업을 시작하기 전에 대상 클러스터에 Backup 확장이 설치되어 있고 Backup 자격 증명 모음에 대해 신뢰할 수 있는 액세스가 사용하도록 설정되어 있는지 확인합니다. 자세히 알아보기.

필수 조건

AKS 클러스터를 복원하기 전에 다음 필수 구성 요소를 충족하는지 확인합니다.

  • AKS 백업을 사용하면 원래 AKS 클러스터(백업됨)와 대체 AKS 클러스터로 복원할 수 있습니다. AKS 백업을 사용하면 전체 복원 및 항목 수준 복원을 수행할 수 있습니다. 복원 구성을 활용하여 복원을 위한 클러스터 리소스를 기반으로 매개 변수를 정의할 수 있습니다.

  • 대상 AKS 클러스터에 백업 확장을 설치해야 합니다. 또한 백업 자격 증명 모음과 AKS 클러스터 간에 신뢰할 수 있는 액세스를 사용하도록 설정해야 합니다.

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

리소스 명령에 대한 변수 초기화

여기서는 명령에 사용할 각 리소스에 필요한 세부 정보를 제공합니다.

  • 백업 자격 증명 모음의 구독 ID

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • 백업 자격 증명 모음이 속한 리소스 그룹

    $vaultRgName = "testBkpVaultRG"
    
  • 백업 자격 증명 모음 이름

    $vaultName = "TestBkpVault"
    
  • 백업 자격 증명 모음이 속한 지역

    $restoreLocation = "vaultRegion" #example eastus
    
  • 대체 AKS 클러스터로 복원이 수행되는 경우 대상 AKS 클러스터의 ID

    $targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
    

AKS 클러스터로 복원

관련 복구 지점 가져오기

관련 복구 지점을 가져오려면 다음 cmdlet을 실행합니다.

  1. Get-AzDataProtectionBackupInstance cmdlet을 사용하여 모든 인스턴스를 가져오고 관련 인스턴스를 식별합니다.

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
    

여러 자격 증명 모음 및 구독의 인스턴스를 검색하려면 사용 및 Search-AzDataProtectionBackupInstanceInAzGraph cmdlet을 사용합니다Az.Resourcegraph.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. 인스턴스가 식별되면 관련 복구 지점을 가져옵니다. 지정된 cmdlet의 출력 배열에서 세 번째 백업 인스턴스를 복원해야 합니다.

    $rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
    

복원 요청 준비

복원 요청을 준비하려면 다음 cmdlet을 실행합니다.

  1. 복원 구성을 준비하고 cmdlet을 사용하여 New-AzDataProtectionRestoreConfigurationClientObject 대상 AKS 클러스터로 복원할 항목을 정의합니다.

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. cmdlet을 사용하여 모든 관련 세부 정보를 사용하여 Initialize-AzDataProtectionRestoreRequest 복원 요청을 준비합니다.

    원래 AKS 클러스터로 복원하려면 다음 cmdlet 형식을 사용합니다.

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

    대체 AKS 클러스터로 복원하려면 다음 cmdlet 형식을 사용합니다.

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType AlternateLocation -TargetResourceId $targetAKSClusterId -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

복원 트리거

복원 작업을 트리거하려면 다음 cmdlet을 실행합니다.

  1. 이전에 만든 복원 요청의 유효성을 검사합니다.

    $validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
    

    참고 항목

    복원 작업 중에 Backup 자격 증명 모음 및 AKS 클러스터에는 복원을 수행하기 위한 특정 역할이 할당되어 있어야 합니다.

    • 대상 AKS 클러스터에는 스냅샷 리소스 그룹에 대한 기여자 역할이 있어야 합니다.
    • 백업 확장과 연결된 사용자 ID에는 백업이 저장되는 스토리지 계정에 대한 스토리지 계정 기여자 역할이 있어야 합니다.
    • 백업 자격 증명 모음에는 대상 AKS 클러스터 및 스냅샷 리소스 그룹에 대한 읽기 권한자 역할이 있어야 합니다.
  2. cmdlet을 사용하여 Start-AzDataProtectionBackupInstanceRestore 이전에 준비한 요청으로 복원 작업을 트리거합니다.

    $restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
    

복원 작업 추적

Get-AzDataProtectionJob cmdlet을 사용하여 모든 작업을 추적합니다. 모든 작업을 나열하고 특정 작업 세부 정보를 가져올 수 있습니다. 또는 Az.ResourceGraph를 사용하여 모든 Backup 자격 증명 모음에서 작업을 추적합니다.

모든 Backup 자격 증명 모음에서 관련 작업을 얻으려면 cmdlet을 Search-AzDataProtectionJobInAzGraph 사용합니다.

$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore

다음 단계