O que é o backup do Serviço Kubernetes do Azure?

O backup do Serviço Kubernetes do Azure (AKS) é um processo simples e nativo da nuvem que você pode usar para fazer backup e restaurar aplicativos e dados em contêineres executados em seu cluster AKS. Você pode configurar backups agendados para o estado do cluster e dados de aplicativos armazenados em volumes persistentes no Armazenamento em Disco do Azure baseado em driver CSI. A solução oferece controle granular para escolher um namespace específico ou um cluster inteiro para fazer backup ou restaurar armazenando backups localmente em um contêiner de blob e como instantâneos de disco. Você pode usar o backup AKS para cenários de ponta a ponta, incluindo recuperação operacional, clonagem de ambientes de desenvolvedor/teste e cenários de atualização de cluster.

O backup do AKS integra-se ao Centro de backup no Azure, fornecendo uma exibição única que pode ajudá-lo a governar, monitorar, operar e analisar backups em escala. Seus backups também estão disponíveis no portal do Azure em Configurações no menu de recursos para uma instância do AKS.

Nota

O backup em cofre e a restauração entre regiões para AKS usando o Backup do Azure estão atualmente em visualização.

Como funciona o backup do AKS?

Use o backup do AKS para fazer backup de suas cargas de trabalho do AKS e volumes persistentes implantados em clusters AKS. A solução requer que a extensão de backup seja instalada dentro do cluster AKS. O cofre de backup se comunica com a extensão para concluir operações relacionadas ao backup e à restauração. O uso da extensão Backup é obrigatório e a extensão deve ser instalada dentro do cluster AKS para habilitar o backup e a restauração para o cluster. Ao configurar o backup do AKS, você adiciona valores para uma conta de armazenamento e um contêiner de blob onde os backups são armazenados.

Junto com a extensão de backup, uma identidade de usuário (chamada de identidade de extensão) é criada no grupo de recursos gerenciados do cluster AKS. A identidade da extensão é atribuída à função de Colaborador da Conta de Armazenamento na conta de armazenamento onde os backups são armazenados em um contêiner de blob.

Para suportar clusters públicos, privados e autorizados baseados em IP, o backup do AKS requer que o Acesso Confiável seja habilitado entre o cluster AKS e o cofre de backup. O Acesso Confiável permite que o cofre de Backup acesse o cluster AKS devido a permissões específicas atribuídas a ele para operações de backup. Para obter mais informações sobre o AKS Trusted Access, consulte Habilitar recursos do Azure para acessar clusters AKS usando o Acesso Confiável.

Nota

O backup do AKS permite armazenar backups na camada operacional. A Camada Operacional é um armazenamento de dados local (em seu locatário como instantâneos). Agora você pode mover um ponto de recuperação por dia e armazená-lo na camada do Vault como blobs (fora do seu locatário) usando o backup AKS. Você também pode usar o cofre de backup para gerenciar backups.

Depois que a extensão de backup for instalada e o Acesso Confiável estiver habilitado, você poderá configurar backups agendados para os clusters de acordo com sua política de backup. Você também pode restaurar os backups para o cluster original ou para um cluster alternativo que esteja na mesma assinatura e região. Você pode escolher um namespace específico ou um cluster inteiro como uma configuração de backup e restauração à medida que configura a operação específica.

A solução de backup permite as operações de backup para suas fontes de dados AKS que são implantadas no cluster e para os dados armazenados no volume persistente para o cluster e, em seguida, armazenam os backups em um contêiner de blob. O backup dos volumes persistentes baseados em disco é feito como instantâneos de disco em um grupo de recursos de instantâneo. Os instantâneos e o estado do cluster em um blob se combinam para formar um ponto de recuperação armazenado em seu locatário chamado Camada Operacional. Você também pode converter backups (primeiro backup bem-sucedido em um dia, semana, mês ou ano) na camada operacional em blobs e, em seguida, movê-los para um cofre (fora do locatário) uma vez por dia.

Nota

Atualmente, o Backup do Azure dá suporte apenas a volumes persistentes no Armazenamento em Disco do Azure baseado em driver CSI. Durante os backups, a solução ignora outros tipos de volume persistentes, como o Compartilhamento de Arquivos do Azure e blobs. Além disso, os backups são elegíveis para serem movidos para o cofre se os volumes persistentes forem de tamanho menor ou igual a 1 TB.

Configurar a cópia de segurança

  • Para configurar backups para clusters AKS, primeiro crie um cofre de backup. O cofre oferece uma visão consolidada dos backups configurados em diferentes fontes de dados. O backup do AKS suporta backups de nível operacional e de nível de cofre.

    Nota

    • O cofre de backup e o cluster AKS do qual você deseja fazer backup ou restaurar devem estar na mesma região e assinatura.
    • A configuração de redundância de armazenamento do cofre de backup (LRS/GRS) só se aplica a backups armazenados na camada do cofre. Se você quiser usar backups para recuperação de desastres, defina a redundância de armazenamento como GRS com a restauração entre regiões habilitada.
  • O backup do AKS aciona automaticamente uma tarefa de backup agendada. O trabalho copia os recursos do cluster para um contêiner de blob e cria um instantâneo incremental dos volumes persistentes baseados em disco de acordo com a frequência de backup. Os backups são mantidos na camada operacional e na camada do vault de acordo com a duração de retenção definida na política de backup e são excluídos assim que a duração terminar.

    Nota

    Você pode usar o backup AKS para criar várias instâncias de backup para um único cluster AKS usando diferentes configurações de backup por instância de backup. No entanto, cada instância de backup de um cluster AKS deve ser criada em um cofre de backup diferente ou usando uma política de backup separada no mesmo cofre de backup.

Gerir a cópia de segurança

Quando a configuração de backup para um cluster AKS é concluída, uma instância de backup é criada no cofre de backup. Você pode exibir a instância de backup para o cluster na seção Backup de uma instância AKS no portal do Azure. Você pode executar quaisquer operações relacionadas ao backup para a instância, como iniciar restaurações, monitorar, interromper a proteção e assim por diante, por meio de sua instância de backup correspondente.

O backup do AKS também se integra diretamente ao Centro de backup para ajudá-lo a gerenciar a proteção de todos os seus clusters AKS e outras cargas de trabalho suportadas por backup centralmente. O centro de backup é uma visualização única para todos os seus requisitos de backup, como tarefas de monitoramento e o estado de backups e restaurações. O centro de backup ajuda você a garantir conformidade e governança, analisar o uso de backup e executar operações críticas para fazer backup e restaurar dados.

O backup do AKS usa identidade gerenciada para acessar outros recursos do Azure. Para configurar o backup de um cluster AKS e restaurar a partir de um backup anterior, a identidade gerenciada do cofre de backup requer um conjunto de permissões no cluster AKS e no grupo de recursos de instantâneo onde os instantâneos são criados e gerenciados. Atualmente, o cluster AKS requer um conjunto de permissões no grupo de recursos de instantâneo. Além disso, a extensão Backup cria uma identidade de usuário e atribui um conjunto de permissões para acessar a conta de armazenamento onde os backups são armazenados em um blob. Você pode conceder permissões para a identidade gerenciada usando o controle de acesso baseado em função do Azure (Azure RBAC). Uma identidade gerenciada é um tipo especial de princípio de serviço que pode ser usado somente com recursos do Azure. Saiba mais sobre identidades gerenciadas.

Restaurar a partir de uma cópia de segurança

Você pode restaurar dados de qualquer ponto no tempo para o qual exista um ponto de recuperação. Um ponto de recuperação é criado quando uma instância de backup está em um estado protegido e pode ser usado para restaurar dados até que sejam retidos pela política de backup.

O Backup do Azure oferece a opção de restaurar todos os itens cujo backup é feito ou usar controles granulares para selecionar itens específicos dos backups, escolhendo namespaces e outras opções de filtro. Além disso, você pode fazer a restauração no cluster AKS original (o cluster do qual foi feito backup) ou em um cluster AKS alternativo. Você pode restaurar backups armazenados na camada Operacional e do Vault em um cluster na mesma assinatura e diferente. Somente os backups armazenados na Camada do Vault podem ser usados para fazer uma restauração em um cluster em uma região diferente (Região Emparelhada do Azure).

Para restaurar o backup armazenado na camada do Vault, você deve fornecer um local de preparo onde os dados de backup estejam hidratados. Esse local de preparo inclui um grupo de recursos e uma conta de armazenamento dentro da mesma região e uma assinatura como o cluster de destino para restauração. Durante a restauração, recursos específicos (contêiner de blob, disco e instantâneos de disco) são criados como parte da hidratação, que é então limpa após a conclusão da operação de restauração.

Atualmente, o Backup do Azure para AKS dá suporte às duas opções a seguir ao fazer uma operação de restauração quando ocorre um conflito de recursos (o recurso de backup tem o mesmo nome que o recurso no cluster AKS de destino). Você pode escolher uma dessas opções ao definir a configuração de restauração.

  1. Ignorar: esta opção é selecionada por padrão. Por exemplo, se você tiver feito backup de um PVC chamado pvc-azuredisk e estiver restaurando-o em um cluster de destino que tenha o PVC com o mesmo nome, a extensão de backup ignorará a restauração da declaração de volume persistente (PVC) de backup. Nesses cenários, recomendamos que você exclua o recurso do cluster e, em seguida, faça a operação de restauração para que os itens de backup estejam disponíveis apenas no cluster e não sejam ignorados.

  2. Patch: Esta opção permite a aplicação de patches de variáveis mutáveis no recurso de backup no recurso no cluster de destino. Se quiser atualizar o número de réplicas no cluster de destino, você pode optar pela aplicação de patches como uma operação.

Nota

Atualmente, o backup do AKS não exclui e recria recursos no cluster de destino se eles já existirem. Se você tentar restaurar Volumes Persistentes no local original, exclua os Volumes Persistentes existentes e execute a operação de restauração.

Usar ganchos personalizados para backup e restauração

Você pode usar ganchos personalizados para tirar instantâneos consistentes com o aplicativo de volumes que são usados para bancos de dados implantados como cargas de trabalho em contêineres.

O que são ganchos personalizados?

Você pode usar o backup do AKS para executar ganchos personalizados como parte de uma operação de backup e restauração. Ganchos são comandos configurados para executar um ou mais comandos a serem executados em um pod sob um contêiner durante uma operação de backup ou após a restauração. Você define esses ganchos como um recurso personalizado e os implanta no cluster AKS do qual deseja fazer backup ou restaurar. Quando o recurso personalizado é implantado no cluster AKS no namespace necessário, você fornece os detalhes como entrada para o fluxo configurar o backup e a restauração. A extensão de backup executa os ganchos conforme definido em um arquivo YAML.

Nota

Ganchos não são executados em um shell nos contêineres.

O backup no AKS tem dois tipos de ganchos:

  • Ganchos de backup
  • Restaurar ganchos

Ganchos de backup

Em um gancho de backup, você pode configurar os comandos para executar o gancho antes de qualquer processamento de ação personalizada (pré-ganchos) ou depois que todas as ações personalizadas forem concluídas e todos os itens adicionais especificados por ações personalizadas forem copiados (pós-ganchos).

Por exemplo, aqui está o modelo YAML para um recurso personalizado a ser implantado usando ganchos de backup:

apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
kind: BackupHook
metadata:
  # BackupHook CR Name and Namespace
  name: bkphookname0
  namespace: default
spec:
  # BackupHook is a list of hooks to execute before and after backing up a resource.
  backupHook:
    # BackupHook Name. This is the name of the hook that will be executed during backup.
    # compulsory
  - name: hook1
    # Namespaces where this hook will be executed.
    includedNamespaces: 
    - hrweb
    excludedNamespaces:
    labelSelector:
    # PreHooks is a list of BackupResourceHooks to execute prior to backing up an item.
    preHooks:
      - exec:
          # Container is the container in the pod where the command should be executed.
          container: webcontainer
          # Command is the command and arguments to execute.
          command:
            - /bin/uname
            - -a
          # OnError specifies how Velero should behave if it encounters an error executing this hook  
          onError: Continue
          # Timeout is the amount of time to wait for the hook to complete before considering it failed.
          timeout: 10s
      - exec:
          command:
            - /bin/bash
            - -c
            - echo hello > hello.txt && echo goodbye > goodbye.txt
          container: webcontainer
          onError: Continue
    # PostHooks is a list of BackupResourceHooks to execute after backing up an item.
    postHooks:
      - exec:
          container: webcontainer
          command:
            - /bin/uname
            - -a
          onError: Continue
          timeout: 10s

Restaurar ganchos

No script de gancho de restauração, comandos personalizados ou scripts são escritos para serem executados nos contêineres de um pod AKS restaurado.

Aqui está o modelo YAML para um recurso personalizado a ser implantado usando ganchos de restauração:

apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
kind: RestoreHook
metadata:
  name: restorehookname0
  namespace: default
spec:
  # RestoreHook is a list of hooks to execute after restoring a resource.
  restoreHook:
    # Name is the name of this hook.
  - name: myhook-1  
    # Restored Namespaces where this hook will be executed.
    includedNamespaces: 
    excludedNamespaces:
    labelSelector:
    # PostHooks is a list of RestoreResourceHooks to execute during and after restoring a resource.
    postHooks:
      - exec:
          # Container is the container in the pod where the command should be executed.
          container: webcontainer
          # Command is the command and arguments to execute from within a container after a pod has been restored.
          command:
            - /bin/bash
            - -c
            - echo hello > hello.txt && echo goodbye > goodbye.txt
          # OnError specifies how Velero should behave if it encounters an error executing this hook
          # default value is Continue
          onError: Continue
          # Timeout is the amount of time to wait for the hook to complete before considering it failed.
          execTimeout: 30s
          # WaitTimeout defines the maximum amount of time Velero should wait for the container to be ready before attempting to run the command.
          waitTimeout: 5m

Saiba como usar ganchos durante o backup do AKS.

Qual nível de armazenamento de backup o AKS suporta?

O Backup do Azure para AKS dá suporte a duas camadas de armazenamento como armazenamentos de dados de backup:

  • Nível operacional: A extensão de backup instalada no cluster AKS primeiro faz o backup tirando instantâneos de volume por meio do driver CSI e armazena o estado do cluster em um contêiner de blob em seu próprio locatário. Esta camada suporta RPO mais baixo com a duração mínima entre dois backups de quatro horas. Além disso, para volumes baseados em Disco do Azure, a Camada Operacional oferece suporte a restaurações mais rápidas.

  • Nível padrão do Vault (visualização): Para armazenar dados de backup por mais tempo e a um custo menor do que os snapshots, o backup do AKS suporta armazenamento de dados padrão do Vault. De acordo com as regras de retenção definidas na política de backup, o primeiro backup bem-sucedido (de um dia, semana, mês ou ano) é movido para um contêiner de blob fora do seu locatário. Este armazenamento de dados não só permite uma retenção mais longa, mas também fornece proteção contra ransomware. Você também pode mover backups armazenados no cofre para outra região (Região Emparelhada do Azure) para recuperação habilitando a redundância geográfica e a restauração entre regiões no cofre de backup.

Nota

Você pode armazenar os dados de backup em um armazenamento de dados padrão do cofre por meio da Política de Backup definindo regras de retenção. Apenas um ponto de recuperação agendado por dia é movido para a camada do Vault. No entanto, você pode mover qualquer número de backups sob demanda para o Vault de acordo com a regra selecionada.

Compreender os preços

Incorre em encargos por:

  • Taxa de instância protegida: o Backup do Azure para AKS cobra uma taxa de instância protegida por namespace por mês. Quando você configura o backup para um cluster AKS, uma instância protegida é criada. Cada instância tem um número específico de namespaces cujo backup é feito conforme definido na configuração de backup. Para obter mais informações sobre os preços de backup do AKS, consulte Preços do Backup na Nuvem e selecione o Serviço Kubernetes do Azure como carga de trabalho

  • Taxa de instantâneo: o Backup do Azure para AKS protege um volume persistente baseado em disco tirando instantâneos armazenados no grupo de recursos em sua assinatura do Azure. Esses snapshots incorrem em encargos de armazenamento de snapshot. Como os snapshots não são copiados para o cofre de backup, o custo de armazenamento de backup não se aplica. Para obter mais informações sobre os preços de snapshot, consulte Preços de disco gerenciado.

Próximo passo