Compartilhar via


Restaurar o Serviço de Kubernetes do Azure usando o PowerShell

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

O Backup do Azure oferece suporte aos clusters, inclusive os recursos dos clusters do AKS e volumes persistentes conectados, 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 a OLR (Recuperação no local original) no mesmo cluster do AKS ou a ALR (Recuperação em local alternativo) em um cluster do AKS diferente. A ILR (Recuperação em nível de item) permite selecionar itens específicos para restaurar do backup.

Observação

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 está habilitado no cofre de Backup. Saiba mais.

Pré-requisitos

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

  • O backup do AKS permite a restauração para o cluster do AKS original (cujo backup foi feito) e para um cluster alternativo do AKS. O backup do AKS permite que você execute uma restauração completa e uma restauração no nível do item. Você pode utilizar as configurações de restauração para definir parâmetros com base nos recursos de cluster para restauração.

  • Você precisa instalar a extensão de backup no cluster do AKS de destino. Além disso, você precisa habilitar o acesso confiável entre o cofre de Backup e o cluster do AKS.

Para saber mais sobre as limitações e os cenários com suporte, confira a matriz de suporte.

Inicializar variáveis para comandos de recurso

Forneça aqui os detalhes necessários para cada recurso usado em seus comandos.

  • ID da assinatura do cofre de backup

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Grupo de recursos ao qual o cofre de backup 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 do AKS de destino, caso a restauração seja executada em um cluster alternativo do AKS

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

Restaurar em um cluster do AKS

Busca do ponto de recuperação relevante

Para buscar o ponto de recuperação relevante, execute os seguintes cmdlets:

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

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

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

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

    $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. Preparar a configuração de restauração e definir os itens a serem restaurados no cluster do AKS de destino usando o cmdlet New-AzDataProtectionRestoreConfigurationClientObject.

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

    Para restaurar o cluster original do AKS, 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 um cluster alternativo do AKS, 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]
    

Disparar a restauração

Para disparar 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
    

    Observação

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

    • O cluster do AKS de Destino deve ter a função Colaborador no Grupo de Recursos de Instantâneos.
    • A Identidade do Usuário anexada à Extensão de Backup deve ter as funções Colaborador da Conta de Armazenamento na conta de armazenamento na qual os backups são armazenados.
    • O cofre de Backup deve ter uma função de Leitor no cluster do AKS de Destino e no Grupo de recursos de instantâneo.
  2. Disparar a operação de restauração com a solicitação preparada anteriormente usando o cmdlet Start-AzDataProtectionBackupInstanceRestore.

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

Acompanhar o trabalho de restauração

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

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

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

Próximas etapas