Partilhar via


Restaurar Azure Kubernetes Service usando PowerShell

Este artigo descreve como restaurar o cluster Azure Kubernetes a partir de um ponto de restauro criado pelo Azure Backup usando o Azure PowerShell.

O Azure Backup suporta a cópia de segurança de clusters AKS, incluindo recursos de cluster e volumes persistentes anexados, usando uma extensão de backup. Esta extensão deve ser instalada no cluster, permitindo que o Backup Vault comunique com ele para realizar operações de backup e restauro.

Pode realizar a Recuperação de Local Original (OLR) no mesmo cluster AKS ou a Recuperação de Local Alternativo (ALR) num cluster AKS diferente. Recuperação ao Nível de Itens (ILR) permite selecionar itens específicos para restaurar a partir de backup.

Note

Antes de iniciar uma operação de restauro, certifique-se de que o cluster alvo tem a Extensão de Backup instalada e o Acesso Confiável ativado para o cofre de Backup. Mais informações.

Prerequisites

Antes de restaurar um cluster AKS, certifique-se de que cumpre os seguintes pré-requisitos:

  • O backup do AKS permite restaurar para o cluster AKS original (do qual foi feito backup) ou para um cluster AKS alternativo. O backup do AKS permite executar uma restauração completa e uma restauração ao nível do item. Pode utilizar configurações de restauro para definir parâmetros com base nos recursos do cluster para restauração.

  • Você deve instalar a Extensão de Backup no cluster AKS de destino. Além disso, você deve habilitar o Acesso Confiável entre o cofre de backup e o cluster AKS.

Para obter mais informações sobre as limitações e os cenários suportados, consulte a matriz de suporte.

Inicializar variáveis para comandos de recursos para a restauração do cluster AKS

Aqui, forneça os detalhes necessários para cada recurso a ser usado nos seus comandos.

  • ID de subscrição do Cofre de Backup

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Grupo de Recursos ao qual pertence o Cofre de Backup

    $vaultRgName = "testBkpVaultRG"
    
  • Nome do Cofre de Reserva

    $vaultName = "TestBkpVault"
    
  • Região a que pertence o Cofre de Reserva

    $restoreLocation = "vaultRegion" #example eastus
    
  • ID do cluster AKS alvo, caso a restauração seja realizada para um cluster AKS alternativo

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

Restaurar num cluster AKS

Buscar o ponto de recuperação relevante

Para obter os pontos de recuperação relevantes, execute os seguintes cmdlets:

  1. Buscar todas as instâncias usando o Get-AzDataProtectionBackupInstance cmdlet e identificar a instância relevante.

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

Para pesquisar em instâncias em vários cofres e subscrições, use os cmdlets Az.Resourcegraph e Search-AzDataProtectionBackupInstanceInAzGraph.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. Uma vez identificada a instância, busque o ponto de recuperação relevante. A partir da matriz de saída do cmdlet dado, a terceira instância de backup deve ser restaurada.

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

Prepare o pedido de restauro

Para preparar o pedido de restauro, execute os seguintes cmdlets:

  1. Prepare a configuração de restauro e defina os itens a serem restaurados no cluster AKS alvo usando o New-AzDataProtectionRestoreConfigurationClientObject cmdlet.

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Prepare o pedido de restauro com todos os detalhes relevantes usando o Initialize-AzDataProtectionRestoreRequest cmdlet.

    Para restaurar o cluster AKS original, utilize o seguinte formato de cmdlet:

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

    Para restaurar num cluster AKS alternativo, use o seguinte formato de cmdlet:

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

Acionar o restauro do cluster AKS

Para ativar a operação de restauro, execute os seguintes cmdlets:

  1. Valide o pedido de restauro criado anteriormente.

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

    Note

    Durante a operação de restauro, o cofre de Backup e o cluster AKS precisam de ter certos papéis atribuídos para realizar a restauração:

    • O cluster AKS alvo deve ter a função Contribuinte no Grupo de Recursos Snapshot.
    • A Identidade do Utilizador associada à Extensão de Backup deve ter funções de Contribuidor da Conta de Armazenamento na conta de armazenamento onde os backups são armazenados.
    • O cofre de backup deve ter uma função de Leitor no cluster AKS de destino e no Grupo de Recursos de Snapshots.
  2. Para iniciar a operação de restauro com o pedido preparado anteriormente usando o Start-AzDataProtectionBackupInstanceRestore cmdlet.

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

Acompanhar o trabalho de restauro para o cluster AKS

Acompanhe todos os trabalhos usando o Get-AzDataProtectionJob cmdlet. Você pode listar todos os trabalhos e buscar um detalhe específico do trabalho. Alternativamente, use o Az.ResourceGraph para acompanhar trabalhos em todos os cofres de backup.

Para obter o trabalho relevante em qualquer cofre de backup, utilize o cmdlet Search-AzDataProtectionJobInAzGraph.

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

Próximos passos