Fazer backup do Serviço Kubernetes do Azure usando o PowerShell
Este artigo descreve como configurar e fazer backup do Serviço Kubernetes do Azure (AKS) 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.
Antes de começar
Antes de começar a fazer backup de um cluster AKS, certifique-se de revisar os seguintes pré-requisitos:
Atualmente, o backup do AKS suporta apenas volumes persistentes baseados em disco do Azure (habilitados pelo driver CSI). Os backups são armazenados apenas no armazenamento de dados operacional (em seu locatário) e não são movidos para um cofre. O cofre de backup e o cluster AKS devem estar na mesma região.
O backup do AKS usa um contêiner de blob e um grupo de recursos para armazenar os backups. O contêiner de blob tem os recursos de cluster AKS armazenados nele, enquanto os instantâneos de volume persistente são armazenados no grupo de recursos. O cluster AKS e os locais de armazenamento devem residir na mesma região. Saiba como criar um contêiner de blob.
Atualmente, o backup do AKS suporta backup uma vez por dia. Ele também suporta backups mais frequentes (a cada intervalos de 4, 8 e 12 horas) por dia. Esta solução permite-lhe reter os seus dados para restauro até 360 dias. Aprenda a criar uma política de backup.
Você deve instalar a extensão de backup para configurar operações de backup e restauração em um cluster AKS. Saiba mais sobre a Extensão de Backup.
Certifique-se de que
Microsoft.KubernetesConfiguration
,Microsoft.DataProtection
eMicrosoft.ContainerService
estão registrados para sua assinatura antes de iniciar a configuração de backup e as operações de restauração.Certifique-se de executar todos os pré-requisitos antes de iniciar a operação de backup ou restauração para backup AKS.
Para obter mais informações sobre os cenários, limitações e disponibilidade suportados, consulte a matriz de suporte.
Criar um cofre de backup
Um cofre de Backup é uma entidade de gerenciamento no Azure que armazena dados de backup para várias cargas de trabalho mais recentes suportadas pelo Backup do Azure, como o Banco de Dados do Azure para servidores PostgreSQL e Discos do Azure. Os cofres de backup facilitam a organização dos dados de backup e, ao mesmo tempo, minimizam a sobrecarga de gerenciamento. Eles se baseiam no modelo do Azure Resource Manager, que fornece recursos aprimorados para ajudar a proteger os dados de backup. Antes de criar um cofre de backup, escolha a redundância de armazenamento dos dados no cofre e, em seguida, crie o cofre de backup com essa redundância de armazenamento e o local.
Aqui, estamos criando um cofre de backup TestBkpVault na região oeste dos EUA sob o grupo de recursos testBkpVaultRG. Use o New-AzDataProtectionBackupVault
cmdlet para criar um cofre de backup. Saiba mais sobre como criar um cofre de backup.
Nota
Embora o cofre selecionado possa ter a configuração de redundância global, o backup para AKS atualmente suporta apenas a camada operacional. Todos os backups são armazenados em sua assinatura na mesma região do cluster AKS e não são copiados para o armazenamento do cofre de backup.
Para definir as configurações de armazenamento do cofre de backup, execute o seguinte cmdlet:
Nota
O cofre é criado apenas com suporte a Redundância Local e Armazenamento de Dados Operacionais.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
Para criar o cofre de backup de acordo com os detalhes mencionados anteriormente, execute o seguinte cmdlet:
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
Quando a criação do cofre estiver concluída, crie uma política de backup para proteger os clusters AKS.
Criar uma política de cópias de segurança
O Backup do Azure permite que você crie políticas de backup para a proteção de Cluster AKS com backups diários ou vários backups por dia.
Para criar uma política de backup para o AKS Cluster, execute os seguintes cmdlets:
Procure o modelo de política usando o cmdlet
Get-AzDataProtectionPolicyTemplate
e verifique os componentes internos de uma política de backup para o backup do AKS. Este comando retorna um modelo de política padrão para um determinado tipo de fonte de dados. Use este modelo de política para criar uma nova política.$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
O modelo de política consiste em um critério de gatilho (que decide os fatores para disparar o trabalho de backup) e um ciclo de vida (que decide quando excluir, copiar ou mover os backups). No backup AKS, o valor padrão para trigger é um gatilho horário agendado a cada 4 horas (PT4H) e a retenção de cada backup é de 7 dias.
$policyDefn.PolicyRule[0]. Trigger | fl ObjectType: ScheduleBasedTriggerContext ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H} TaggingCriterion: {Default} $policyDefn.PolicyRule[1]. Lifecycle | fl DeleteAfterDuration: P7D DeleteAfterObjectType: AbsoluteDeleteOption SourceDataStoreObjectType : DataStoreInfoBase SourceDataStoreType: OperationalStore TargetDataStoreCopySetting:
Para a frequência de backup diária, especifique a hora do dia em que os backups devem ser feitos.
Importante
A hora do dia indica a hora de início do backup e não a hora em que o backup é concluído. O tempo necessário para concluir a operação de backup depende de vários fatores, incluindo o número e o tamanho dos volumes persistentes e a taxa de rotatividade entre backups consecutivos.
O backup para AKS fornece vários backups por dia. Os backups são distribuídos igualmente ao longo do dia, se você precisar de backups mais frequentes, escolhendo a frequência de backup por hora que tem a capacidade de fazer backups com intervalos de cada 4, 6, 8 ou 12 horas. Os backups são agendados com base no intervalo de tempo selecionado. Por exemplo, se você selecionar a cada 4 horas, os backups serão feitos aproximadamente no intervalo de cada 4 horas.
Se quiser editar a frequência horária ou o período de retenção, use os
Edit-AzDataProtectionPolicyTriggerClientObject
cmdlets e/ouEdit-AzDataProtectionPolicyRetentionRuleClientObject
. Quando o objeto de política tiver todos os valores necessários, comece a criar uma nova política a partir do objeto de política usando oNew-AzDataProtectionBackupPolicy
cmdlet.New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
Preparar o cluster AKS para backup
Quando o vault e a criação da política estiverem concluídos, você precisará executar os seguintes pré-requisitos para preparar o cluster AKS para backup:
Criar uma conta de armazenamento e um contêiner de blob
O backup para AKS armazena recursos do Kubernetes em um contêiner de blob como backups. Para preparar o cluster AKS para backup, você precisa instalar uma extensão no cluster. Esta extensão requer a conta de armazenamento e o contêiner de blob como entradas.
Para criar uma nova conta de armazenamento e um contêiner de blob, consulte estas etapas.
Nota
- A conta de armazenamento e o cluster AKS devem estar na mesma região e assinatura.
- O contêiner de blob não deve conter nenhum sistema de arquivos criado anteriormente (exceto criado por backup para AKS).
- Se o cluster AKS de origem ou destino estiver em uma rede virtual privada, você precisará criar o Private Endpoint para conectar a conta de armazenamento ao cluster AKS.
Instalar extensão de backup
A Extensão de Backup é obrigatória para ser instalada no cluster AKS para executar quaisquer operações de backup e restauração. A Extensão de Backup cria um namespace
dataprotection-microsoft
no cluster e usa o mesmo para implantar seus recursos. A extensão requer a conta de armazenamento e o contêiner de blob como entradas para a instalação. Saiba mais sobre os comandos de instalação da extensão.Como parte da instalação da extensão, uma identidade de usuário é criada no Grupo de Recursos do Pool de Nóis do cluster AKS. Para que a extensão acesse a conta de armazenamento, você precisa fornecer essa identidade à função de Colaborador da Conta de Armazenamento . Para atribuir a função necessária, execute estes comandos
Habilitar acesso confiável
Para que o cofre de Backup se conecte ao cluster AKS, você deve habilitar o Acesso Confiável, pois ele permite que o cofre de Backup tenha uma linha de visão direta para o cluster AKS. Saiba como ativar o Acesso Fidedigno.
Nota
Para a instalação da Extensão de Backup e a ativação do Acesso Confiável, os comandos estão disponíveis somente na CLI do Azure.
Configurar backups
Com o cofre de backup e a política de backup criados, e o cluster AKS no estado pronto para backup , agora você pode começar a fazer backup do cluster AKS.
Entidades principais
Cluster AKS a ser protegido
Obtenha a ID do Azure Resource Manager do cluster AKS a ser protegido. Isso serve como o identificador do cluster. Neste exemplo, vamos usar um cluster AKS chamado PSTestAKSCluster, em um grupo de recursos aksrg, em uma assinatura diferente:
$sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
Grupo de recursos de instantâneo
Os instantâneos de volume persistentes são armazenados em um grupo de recursos em sua assinatura. Recomendamos que você crie um grupo de recursos dedicado como um armazenamento de dados de instantâneo a ser usado pelo serviço de Backup do Azure. Um grupo de recursos dedicado permite restringir as permissões de acesso no grupo de recursos, proporcionando segurança e facilidade de gerenciamento dos dados de backup. Salve a ID do Azure Resource Manager do grupo de recursos no local onde você deseja armazenar os instantâneos de volume persistentes.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
Preparar o pedido
A configuração do backup é realizada em duas etapas:
Prepare a configuração de backup para definir quais recursos de cluster devem ser submetidos a backup usando o
New-AzDataProtectionBackupConfigurationClientObject
cmdlet. No exemplo a seguir, a configuração é definida como todos os recursos de cluster em atual, e namespaces futuros serão copiados com o rótulo comokey-value pair x=y
. Além disso, é feito backup de todos os recursos com escopo do cluster e volumes persistentes. Os namespaces a seguir são ignorados da configuração de backup e não configurados para backups: kube-system, kube-node-lease, kube-public.$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
Prepare a solicitação relevante usando o vault, a política, o cluster AKS, a configuração de backup e o grupo de recursos de snapshot relevantes usando o
Initialize-AzDataProtectionBackupInstance
cmdlet.$backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
Atribua as permissões necessárias e valide
Para atribuir as permissões necessárias e executar a validação para a proteção de cluster AKS, execute os seguintes cmdlets:
Com a solicitação preparada, você precisa atribuir ao usuário as permissões necessárias por meio do controle de acesso baseado em função do Azure (Azure RBAC) para o vault (representado pela identidade do sistema gerenciado do vault) e o cluster AKS. Você pode executar isso usando o
Set-AzDataProtectionMSIPermission
cmdlet. O cofre de backup usa identidade gerenciada para acessar outros recursos do Azure. Para configurar o backup do cluster AKS, a identidade gerenciada do cofre de backup requer um conjunto de permissões no cluster AKS e grupos de recursos, onde os instantâneos são criados e gerenciados. Além disso, o cluster AKS requer permissão no grupo de recursos de snapshot.Nota
Atualmente, apenas a identidade gerenciada atribuída pelo sistema é suportada para backup (cofre de backup e cluster AKS). Uma identidade gerenciada atribuída ao sistema é restrita a uma por recurso e está vinculada ao ciclo de vida desse recurso. Você pode conceder permissões para a identidade gerenciada usando o RBAC do Azure. A identidade gerenciada é uma entidade de serviço de um tipo especial que só pode ser usada com recursos do Azure. Saiba mais sobre identidades gerenciadas.
Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
Depois que as permissões forem atribuídas, teste a prontidão da instância criada.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
Quando a validação for bem-sucedida, envie a solicitação para proteger o cluster AKS usando o
New-AzDataProtectionBackupInstance
cmdlet.New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
Executar uma cópia de segurança a pedido
Para acionar um backup sob demanda, execute os seguintes cmdlets:
Procure a instância de backup relevante na qual você deseja disparar um backup executando o
Get-AzDataProtectionBackupInstance
cmdlet.$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Especifique uma regra de retenção ao acionar o backup. Para exibir as regras de retenção na política, vá para o objeto de política para regras de retenção. No exemplo a seguir, a regra com nome padrão aparece e usaremos essa regra para o backup sob demanda.
$policyDefn.PolicyRule | fl BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams BackupParameterObjectType: AzureBackupParams DataStoreObjectType: DataStoreInfoBase DataStoreType: OperationalStore Name: BackupHourly ObjectType: AzureBackupRule Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext TriggerObjectType: ScheduleBasedTriggerContext IsDefault: True Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle} Name: Default ObjectType: AzureRetentionRule
Acione um backup sob demanda usando o
Backup-AzDataProtectionBackupInstanceAdhoc
cmdlet.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Acompanhamento de trabalhos
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 o Az.ResourceGraph
cmdlet para controlar todos os trabalhos em todos os cofres de backup. Use o Search-AzDataProtectionJobInAzGraph
cmdlet para obter os detalhes relevantes do trabalho de qualquer cofre de backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup