Compartilhar via


Fazer backup do Serviço de Kubernetes do Azure usando o PowerShell

Este artigo descreve como configurar e fazer backup do AKS (Serviço de Kubernetes do Azure) usando o Azure PowerShell.

Agora, o Backup do Azure permite fazer backup de clusters do AKS (recursos de cluster e volumes persistentes anexados ao cluster) usando uma extensão de backup, que precisa 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 iniciar o backup de um cluster do AKS, verifique os seguintes pré-requisitos:

  • No momento, o backup do AKS dá suporte apenas a volumes persistentes baseados em Discos do Azure (habilitados pelo driver CSI). Os backups são armazenados apenas no armazenamento de dados operacional (no locatário) e não são movidos para um cofre. O cofre de backup e o cluster do 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 contém os recursos de cluster do AKS armazenados, enquanto os instantâneos de volume persistente são armazenados no grupo de recursos. O cluster do AKS e os locais de armazenamento precisam residir na mesma região. Saiba como criar um contêiner de blob.

  • No momento, o backup do AKS dá suporte ao backup uma vez por dia. Ele também dá suporte a backups mais frequentes (em intervalos de 4, 8 e 12 horas) por dia. Essa solução permite que você mantenha seus dados para restauração por até 360 dias. Saiba como criar uma política de backup.

  • Você precisa instalar a extensão de backup para configurar operações de backup e restauração em um cluster do AKS. Saiba mais sobre a extensão de backup.

  • Certifique-se de que Microsoft.KubernetesConfiguration, Microsoft.DataProtection, e Microsoft.ContainerService estejam registrados para sua assinatura antes de iniciar as operações de configuração e restauração de backup.

  • Execute todos os pré-requisitos antes de iniciar a operação de backup ou restauração do backup do AKS.

Para saber mais sobre os cenários com suporte, as limitações e a disponibilidade, confira 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 com suporte do Backup do Azure, como servidores para o Banco de Dados do Azure para PostgreSQL e os Azure Disks. Os Cofres de Backup facilitam a organização dos dados de backup e minimizam a sobrecarga de gerenciamento. Eles são baseados no modelo do Azure Resource Manager, que fornece recursos avançados 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 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 cmdlet New-AzDataProtectionBackupVault para criar um Cofre de Backup. Saiba mais sobre como criar um cofre de backup.

Observação

Embora o cofre selecionado possa ter a configuração de redundância global, o backup para AKS atualmente tem suporte apenas para a Camada Operacional. Todos os backups são armazenados em sua assinatura na mesma região do cluster do AKS e não são copiados para o armazenamento do Cofre de Backup.

  1. Para definir as configurações de armazenamento do Cofre de Backup, execute o seguinte cmdlet:

    Observação

    O cofre é criado apenas com suporte para redundância local e armazenamento de dados operacionais.

    $storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
    
  2. 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
    

Depois que a criação do cofre for concluída, crie uma política de backup para proteger os clusters do AKS.

Criar uma política de backup

O Backup do Azure permite que você crie políticas de backup para a proteção do cluster do AKS com Backups diários ou Vários backups por dia.

Para criar uma política de backup para o cluster do AKS, execute os seguintes cmdlets:

  1. Obtenha 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. Esse 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 do AKS, o valor padrão para o gatilho é um gatilho programado por hora a cada quatro horas (PT4H) e a retenção de cada backup é de sete 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:
    
  2. Para a Frequência de backup diário, especifique a hora do dia em que os backups devem ser feitos.

    Importante

    A hora do dia indica o horário de início do backup e não o horário 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, escolha a frequência de backup por hora, que permite fazer backups com intervalos de 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.

  3. Se você quiser editar a frequência por hora ou o período de retenção, use os comandos Edit-AzDataProtectionPolicyTriggerClientObject e/ou Edit-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 o cmdlet New-AzDataProtectionBackupPolicy.

    New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn
    
    $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
    

Preparar o cluster do AKS para backup

Depois que o cofre e a criação da política forem concluídos, execute os seguintes pré-requisitos para preparar o cluster do AKS para backup:

  1. Criar uma conta de armazenamento e um contêiner de blobs

    O backup para AKS armazena recursos do Kubernetes em um contêiner de blob como backups. Para preparar o cluster do AKS para backup, você precisa instalar uma extensão no cluster. Essa 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, confira estas etapas.

    Observação

    1. A conta de armazenamento e o cluster do AKS devem estar na mesma região e assinatura.
    2. O contêiner de blob não deve conter nenhum sistema de arquivos criado anteriormente (exceto criado pelo backup para AKS).
    3. Se o cluster do AKS de origem ou destino estiver em uma rede virtual privada, você precisará criar um ponto de extremidade privado para conectar a conta de armazenamento com o cluster do AKS.
  2. Instalar a extensão de backup

    A Extensão de Backup é obrigatória para ser instalada no cluster do AKS para executar as 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. Essa extensão requer a conta de armazenamento e o contêiner de blob como entradas para 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ós do cluster do AKS. Para que a extensão acesse a conta de armazenamento, você precisa fornecer essa identidade a função Colaborador da Conta de Armazenamento . Para atribuir a função necessária, execute estes comandos

  3. Habilitar o acesso confiável

Para que o Cofre de Backup se conecte ao cluster do 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 do AKS. Saiba como habilitar o acesso confiável.

Observação

Para instalação da Extensão de Backup e habilitação de Acesso Confiável, os comandos estão disponíveis apenas na CLI do Azure.

Configurar backups

Com o Cofre de Backup e a política de backup criados e o cluster do AKS no estado pronto para backup, agora você pode começar a fazer backup do cluster do AKS.

Principais entidades

  • Cluster do AKS a ser protegido

    Busque a ID do Azure Resource Manager do cluster do AKS a ser protegido. Isso serve como identificador do cluster. Neste exemplo, usaremos um cluster do 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 persistente 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âneos 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 em que você deseja armazenar os instantâneos de volume persistentes.

    $snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
    

Preparar a solicitação

A configuração do backup é executada em duas etapas:

  1. Prepare a configuração de backup para definir quais recursos do cluster terão o backup feito usando o cmdlet New-AzDataProtectionBackupConfigurationClientObject. No exemplo a seguir, a configuração é definida como todos os recursos do cluster nos namespaces atuais e futuros que terão o backup feito com o rótulo como key-value pair x=y. Além disso, é feito o backup de todos os recursos com escopo de cluster e volumes persistentes. Os namespaces a seguir são ignorados da configuração de backup e não são configurados para backups: kube-system, kube-node-lease, kube-public.

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. Prepare a solicitação relevante usando o cofre, a política, o cluster do AKS, a configuração de backup e instantâneo grupo de recursos usando o cmdlet Initialize-AzDataProtectionBackupInstance.

    $backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService  -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
    

Atribuir permissões necessárias e validar

Para atribuir as permissões necessárias e executar a validação da proteção do cluster do AKS, execute os seguintes cmdlets:

  1. Com a solicitação preparada, atribua ao usuário as permissões necessárias por meio do controle de acesso baseado em função do Azure (RBAC do Azure) para o cofre (representado pela identidade do sistema gerenciado do cofre) e o cluster do AKS. Você pode executar isso usando o cmdlet Set-AzDataProtectionMSIPermission. O Cofre de Backup usa a Identidade Gerenciada para acessar outros recursos do Azure. Para configurar o backup do cluster do AKS, a identidade gerenciada do Cofre de Backup requer um conjunto de permissões no cluster do AKS e nos grupos de recursos, onde os instantâneos são criados e gerenciados. Além disso, o cluster do AKS requer permissão no grupo de recursos instantâneo.

    Observação

    Somente a identidade gerenciada atribuída pelo sistema tem suporte no momento para backup (Cofre de Backup e cluster do AKS). Uma identidade gerenciada atribuída pelo sistema é restrita a uma por recurso e está vinculada ao ciclo de vida desse recurso. Você pode conceder permissões à 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"
    
  2. Depois que as permissões forem atribuídas, teste a preparação da instância criada.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. Quando a validação for bem-sucedida, envie a solicitação para proteger o cluster do AKS usando o cmdlet New-AzDataProtectionBackupInstance.

    New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
    

Executar um backup sob demanda

Para disparar um backup sob demanda, execute os seguintes cmdlets:

  1. Obtenha a instância de backup relevante na qual você quer disparar um backup executando o cmdlet Get-AzDataProtectionBackupInstance.

    $instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
    
  2. Especifique uma regra de retenção ao disparar o backup. Para exibir as regras de retenção na política, acesse o objeto de política para regras de retenção. No exemplo a seguir, a regra com o nome padrão é exibida 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
    
  3. Dispare um backup sob demanda usando o cmdlet Backup-AzDataProtectionBackupInstanceAdhoc.

    $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 cmdlet Get-AzDataProtectionJob. Você pode listar todos os trabalhos e buscar um detalhe de trabalho específico. Você também pode usar o cmdlet Az.ResourceGraph para acompanhar todos os trabalhos em todos os Cofres de Backup. Use o cmdlet Search-AzDataProtectionJobInAzGraph 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

Próximas etapas