다음을 통해 공유


PowerShell을 사용하여 Azure Kubernetes Service 복원

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

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

OLR(원래 위치 복구)(백업된 AKS 클러스터에서 복원) 및 ALR(대체 위치 복구)(다른 AKS 클러스터에서 복원)을 모두 수행할 수 있습니다. ILR(항목 수준 복구) 백업에서 복원할 항목을 선택할 수도 있습니다.

참고 항목

복원 작업을 시작하기 전에 대상 클러스터에 백업 확장이 설치되어 있고 백업 자격 증명 모음에 대해 신뢰할 수 있는 액세스가 활성화되어 있어야 합니다. 자세히 알아보기.

명령에 사용할 각 리소스와 관련된 필수 세부 정보로 변수를 초기화합니다.

  • 백업 자격 증명 모음의 구독 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 백업을 사용하면 원래 AKS 클러스터(백업됨)와 대체 AKS 클러스터로 복원할 수 있습니다. AKS 백업을 사용하면 전체 복원 및 항목 수준 복원을 수행할 수 있습니다. 복원 구성을 활용하여 복원할 클러스터 리소스를 기반으로 매개 변수를 정의할 수 있습니다.

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

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

AKS 클러스터로 복원

관련 복구 지점 가져오기

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

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

또한 Az.ResourcegraphSearch-AzDataProtectionBackupInstanceInAzGraph cmdlet을 사용하여 여러 자격 증명 모음 및 구독의 인스턴스를 검색할 수도 있습니다.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured

인스턴스가 식별되면 관련 복구 지점을 가져옵니다. 위 명령의 출력 배열에서 세 번째 백업 인스턴스가 복원될 것입니다.

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

복원 요청 준비

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

$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}

그런 다음, Initialize-AzDataProtectionRestoreRequest cmdlet을 사용하여 모든 관련 세부 정보가 포함된 복원 요청을 준비합니다.

원본 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]

복원 트리거

복원 작업을 트리거하기 전에 이전에 만든 복원 요청의 유효성을 검사합니다.

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

참고 항목

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

  1. 대상 AKS 클러스터에는 스냅샷 리소스 그룹에 대한 기여자 역할이 있어야 합니다.
  2. 백업 확장과 연결된 사용자 ID에는 백업이 저장되는 스토리지 계정에 대한 스토리지 계정 기여자 역할이 있어야 합니다.
  3. 백업 자격 증명 모음에는 대상 AKS 클러스터 및 스냅샷 리소스 그룹에 대한 읽기 권한자 역할이 있어야 합니다.

이제 Start-AzDataProtectionBackupInstanceRestore cmdlet을 사용하여 이전에 준비된 요청으로 복원 작업을 트리거합니다.

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

작업 추적

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

Search-AzDataProtectionJobInAzGraph cmdlet을 사용하여 모든 백업 자격 증명 모음에 있을 수 있는 관련 작업을 가져옵니다.

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

다음 단계