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 agora permite fazer backup de clusters AKS (recursos de cluster e volumes persistentes anexados ao cluster) usando uma extensão de backup, que deve ser instalada no cluster. O cofre de backup se comunica com o cluster por meio dessa extensão de backup para executar operações de backup e restauração.
Você pode executar a Recuperação de Local Original (OLR) (restauração no cluster AKS do qual foi feito backup) e a Recuperação de Local Alternativo (ALR) (restauração em um cluster AKS diferente). Você também pode selecionar os itens a serem restaurados a partir do backup que é ILR (Item-Level Recovery).
Nota
Antes de iniciar uma operação de restauração, o cluster de destino deve ter a Extensão de Backup instalada e o Acesso Confiável habilitado para o cofre de Backup. Mais informações.
Inicialize as variáveis com os detalhes necessários relacionados a cada recurso a ser usado nos 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"
Antes de começar
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 que serão restaurados.
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.
Restaurar para um cluster AKS
Buscar o ponto de recuperação relevante
Buscar todas as instâncias usando o Get-AzDataProtectionBackupInstance
cmdlet e identificar a instância relevante.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
Você também pode usar Az.Resourcegraph
e Search-AzDataProtectionBackupInstanceInAzGraph
cmdlets para pesquisar instâncias em vários cofres e assinaturas.
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -ProtectionStatus ProtectionConfigured
Uma vez identificada a instância, busque o ponto de recuperação relevante. Supostamente, a partir da matriz de saída do comando acima, 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
Use o New-AzDataProtectionRestoreConfigurationClientObject
cmdlet para preparar a configuração de restauração e definir os itens a serem restaurados no cluster AKS de destino.
$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -NamespaceMapping @{"sourceNamespace"="targetNamespace"}
Em seguida, use o Initialize-AzDataProtectionRestoreRequest
cmdlet para preparar a solicitação de restauração com todos os detalhes relevantes.
Caso queira executar a restauração para o cluster AKS original com backup, use o formato abaixo para o cmdlet
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
Caso deseje executar a restauração em um cluster AKS alternativo, use o formato abaixo para o 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
Antes de acionar a operação de restauração, 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.
Agora, use o Start-AzDataProtectionBackupInstanceRestore
cmdlet para disparar a operação de restauração com a solicitação preparada anteriormente.
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
Acompanhamento do trabalho
Acompanhe todos os trabalhos usando o Get-AzDataProtectionJob
cmdlet. Você pode listar todos os trabalhos e buscar um detalhe específico do trabalho. Você também pode usar Az.ResourceGraph
para rastrear todos os trabalhos em todos os cofres de backup.
Use o Search-AzDataProtectionJobInAzGraph
cmdlet para obter o trabalho relevante, que pode estar em qualquer cofre de backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore