Partilhar via


Restaurar o Serviço Kubernetes do Azure usando o PowerShell

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

O Backup do Azure dá suporte ao backup de clusters AKS, incluindo recursos de cluster e volumes persistentes anexados, usando uma extensão de backup. Essa extensão deve ser instalada no cluster, permitindo que o Cofre de Backup se comunique com ele para executar operações de backup e restauração.

Você pode executar OLR (Recuperação de Local Original) no mesmo cluster AKS ou Recuperação de Local Alternativo (ALR) em um cluster AKS diferente. A ILR (Item-Level Recovery) permite selecionar itens específicos para restaurar a partir do backup.

Nota

Antes de iniciar uma operação de restauração, verifique se o cluster de destino tem a Extensão de Backup instalada e o Acesso Confiável habilitado para o cofre de Backup. Mais informações.

Pré-requisitos

Antes de restaurar um cluster AKS, verifique se você atende aos seguintes pré-requisitos:

  • O backup do AKS permite restaurar para o cluster AKS original (que foi feito backup) e para um cluster AKS alternativo. O backup do AKS permite que você execute uma restauração completa e restauração no nível do item. Você pode utilizar configurações de restauração para definir parâmetros com base nos recursos de 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

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

  • ID de assinatura do cofre de backup

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Grupo de recursos ao qual o Backup Vault pertence

    $vaultRgName = "testBkpVaultRG"
    
  • Nome do cofre de backup

    $vaultName = "TestBkpVault"
    
  • Região à qual o Cofre de Backup pertence

    $restoreLocation = "vaultRegion" #example eastus
    
  • ID do cluster AKS de destino, caso a restauração seja executada em um cluster AKS alternativo

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

Restaurar para um cluster AKS

Buscar o ponto de recuperação relevante

Para buscar 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 entre instâncias em vários cofres e assinaturas, use Az.Resourcegraph e Search-AzDataProtectionBackupInstanceInAzGraph cmdlets.

 $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 fornecido, a terceira instância de backup deve ser restaurada.

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

Preparar a solicitação de restauração

Para preparar a solicitação de restauração, execute os seguintes cmdlets:

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

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

    Para restaurar o cluster AKS original, use 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 para um 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 a restauração

Para acionar a operação de restauração, execute os seguintes cmdlets:

  1. Valide a solicitação de restauração criada anteriormente.

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

    Nota

    Durante a operação de restauração, o cofre de backup e o cluster AKS precisam ter determinadas funções atribuídas para executar a restauração:

    • O cluster AKS de destino deve ter a função de Colaborador no Grupo de Recursos de Instantâneo.
    • A Identidade do Usuário anexada à Extensão de Backup deve ter funções de Colaborador 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 instantâneo.
  2. Para disparar a operação de restauração com a solicitação preparada anteriormente usando o Start-AzDataProtectionBackupInstanceRestore cmdlet.

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

Acompanhe o trabalho de restauração

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

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

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

Próximos passos