Planejar um conjunto de backups

Nesta página, descrevemos como criar e gerenciar planos de backup para cargas de trabalho em clusters no Google Distributed Cloud (GDC) com isolamento físico.

Os planos de backup oferecem as funções de configuração, local e gerenciamento para uma sequência de backups. Um plano de backup contém uma configuração de backup, incluindo o cluster de origem e a seleção de cargas de trabalho para fazer backup. O Google recomenda fornecer a cada cluster pelo menos um plano de backup.

É possível criar um ou mais planos de backup para cada cluster. Talvez você queira particionar os backups do cluster por um dos seguintes motivos:

  • Em vez de um backup muito grande feito em uma única hora do dia, é preciso ter vários backups menores distribuídos ao longo do dia.
  • Você quer fazer backup de algumas partes do cluster com mais frequência do que de outras, como backups diários para alguns namespaces e backups por hora para outros.

Um único cluster ou máquina virtual (VM) pode pertencer a um ou mais planos de backup. Um plano de backup não pode abranger mais de um cluster. No entanto, um único plano de backup pode capturar várias VMs se elas estiverem no mesmo cluster. É necessário associar todos os recursos de backup e restauração a um nome de projeto.

Antes de começar

Para criar um plano de backup, você precisa ter o seguinte:

  • O papel de identidade e acesso necessário:
    • Administrador de backup de cluster de usuário: gerencia recursos de backup, como planos de backup e restauração em clusters de usuário. Peça ao administrador do IAM da organização para conceder a você o papel de Administrador de backup de cluster de usuário (user-cluster-backup-admin). Para mais informações, consulte Definições de papéis.
  • Se você for um operador de aplicativos, peça ao administrador com privilégios de administrador de backup do cluster de usuário para criar um plano de backup para você.
  • Ao fazer backup de um cluster de usuário, anexe a ele o projeto usado para criar o plano de backup.

Criar um plano de backup

Recomendamos que você defina uma programação cron para o plano de backup. Assim, os backups serão criados automaticamente de acordo com essa programação. Também é possível fazer backup manual das suas cargas de trabalho. Para mais informações, consulte Criar um backup manual.

Crie planos de backup usando o console do GDC ou a API.

Console

  1. Faça login no console do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Criar plano de backup.
  4. Na seção Detalhes do plano, conclua as etapas a seguir e clique em Continuar:
    1. Na lista Cluster, selecione o cluster para fazer backup.
    2. Na lista Projeto, selecione o projeto.
    3. No campo Nome do plano de backup, insira o nome escolhido.
    4. (Opcional) Em Descrição do plano de backup, insira uma descrição para o plano.
    5. No campo Repositório de backup, selecione um repositório de backup. Os repositórios de backup são um conjunto de implementações de armazenamento de objetos.
    6. Clique em Próxima.
  5. Na seção Escopo e criptografia, conclua as etapas a seguir e clique em Continuar:

    1. Selecione um dos seguintes escopos para o plano de backup:

      1. Clique em Cluster inteiro para fazer backup de todos os recursos de namespace no backup.
      2. Clique em Namespaces selecionados no cluster para escolher os namespaces no cluster a serem incluídos no backup.
        1. Clique em Editar namespace do cluster e em Adicionar namespace do cluster para inserir um namespace.
      3. Clique em Aplicativos protegidos selecionados neste cluster para adicionar recursos especificando o namespace e o nome do aplicativo.
        1. Clique em Editar aplicativos protegidos e depois em Adicionar aplicativo protegido para inserir um Namespace e um Aplicativo protegido.
    2. Clique em Incluir secrets para incluir recursos do Kubernetes Secret.

    3. Clique em Incluir dados do volume permanente se quiser armazenar os dados de volume no backup. Desmarque essa caixa de seleção se quiser criar volumes vazios durante o backup.

  6. Na seção Programação e retenção, siga estas etapas e clique em Continuar:

    1. Para definir uma programação, insira uma expressão usando a sintaxe cron padrão no campo String CRON. Por exemplo, a expressão 10 3 * * * cria um backup às 3h10 todos os dias. Todos os horários são interpretados como UTC. O intervalo mínimo entre backups programados é de 10 minutos.
    2. No campo Excluir backups após, defina o número de dias em que o backup será mantido. Quando o número de dias é atingido, o backup é excluído automaticamente.
    3. Defina por quantos dias os backups não podem ser excluídos.
    4. Para bloquear a política de retenção, clique no ícone de bloqueio para mudar o status de Desativado para Ativado.
  7. Confira os detalhes do plano de backup e clique em Criar plano.

API

Crie um recurso personalizado ClusterBackupPlan no cluster para programar backups. Um plano de backup programa backups periodicamente com base no backupSchedule. Os recursos ClusterBackupPlan são recursos de namespace. Confira um exemplo de ClusterBackupPlan:

apiVersion: backup.gdc.goog/v1
kind: ClusterBackupPlan
metadata:
  name: CLUSTER_BACKUP_PLAN
  namespace: PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: CLUSTER_NAME
  backupSchedule:
    cronSchedule: CRON_SCHEDULE
    paused: BACKUP_SCHEDULE_STATUS
  clusterBackupConfig:
    backupScope:
      selectedNamespaces:
        namespaces: [NAME_SPACE]
    clusterBackupRepositoryName: CLUSTER_BACKUP_REPOSITORY
    includeVolumeData: VOLUME_DATA_INCLUDED
    volumeStrategy: VOLUME_STRATEGY
    includeSecrets: SECRETS_INCLUDED
  retentionPolicy:
    backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
    backupRetainDays: BACKUP_RETAIN_DAYS
  description: BACKUP_PLAN_DESCRIPTION

Substitua:

  • CLUSTER_BACKUP_PLAN: o nome do plano de backup do cluster.
  • PROJECT_NAME: o nome do projeto do GDC.
  • CLUSTER_NAME: o nome do cluster para backup. O campo targetCluster tem os seguintes componentes:
    • targetClusterType: o tipo de cluster para backup, como UserCluster ou ManagementAPI. Este exemplo usa UserCluster.
    • targetClusterName: contém name, que é definido por CLUSTER_NAME.
  • CRON_SCHEDULE: uma programação crontab indicando quando agendar backups, como "*/30 * * * *". O intervalo mínimo entre backups programados é de 10 minutos.
  • BACKUP_SCHEDULE_STATUS: se true, os backups periódicos não serão programados.
  • NAME_SPACE: uma lista de namespaces a serem incluídos no backup. O campo clusterBackupConfig inclui detalhes de configuração para backups:
    • backupScope: indica quais recursos são armazenados em backup. O exemplo usa selectedNamespaces. Os valores possíveis são:
      • allNamespaces: captura todos os recursos em todos os namespaces.
      • selectedNamespaces: captura recursos na lista de namespaces especificados.
      • selectedApplication: captura recursos definidos por protectedApplications.
    • namespaces: aplicável se backupScope for selectedNamespaces.
  • CLUSTER_BACKUP_REPOSITORY: valor de clusterBackupRepositoryName em clusterBackupConfig. É o repositório de destino que armazena os backups e precisa ser importado como ReadWrite.
  • VOLUME_DATA_INCLUDED: especifica se os dados de volume serão incluídos no backup. Por padrão, esse valor é false. Se você quiser incluir dados de volume no backup, defina como true.
  • VOLUME_STRATEGY: o tipo de backup de volume a ser realizado. Os valores possíveis incluem:
    • ProvisionerSpecific: usa os recursos de backup e restauração do provisionador de armazenamento subjacente. Use essa opção se includeVolumeData for true.
    • LocalSnapshotOnly: cria uma cópia do volume em um determinado momento apenas no próprio sistema de armazenamento local.
    • Portable: oferece uma maneira independente de armazenamento para fazer backup dos dados de volume.
  • SECRETS_INCLUDED: especifica se os secrets serão incluídos no backup. Por padrão, esse valor é false. Se você quiser incluir recursos do Kubernetes Secret no backup, defina como true.
  • BACKUP_DELETE_LOCK_DAYS: impede a exclusão do backup pelo número de dias especificado após a criação dele, por exemplo, 10 days.
  • BACKUP_RETAIN_DAYS: define o número total de dias para manter o backup. Após esse período, o backup é excluído automaticamente. Definir um valor muito alto pode levar ao esgotamento do armazenamento, enquanto um valor muito baixo pode aumentar o risco de perda de dados. Se não for especificado, o valor padrão será 35. As políticas de retenção não substituem as políticas de retenção do local de armazenamento nem podem exceder 90 dias.
  • BACKUP_PLAN_DESCRIPTION: uma descrição do plano de backup.

Depois que um plano de backup é criado, os backups são criados automaticamente com a configuração especificada com base na programação de backup.

Ver um plano de backup

Confira um plano de backup usando o console do GDC ou a API.

Console

  1. Faça login no console do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Selecionar projeto e escolha uma organização ou um projeto, dependendo da sua função:
    • Administrador de backup de cluster de usuário: selecione uma organização para ver todos os planos de backup ou um projeto para ver todos os planos de backup em um projeto.
    • Criador de backup: selecione um projeto para conferir todos os planos de backup nele.
  4. Clique na guia Planos de backup.
  5. Clique em um plano de backup na lista para ver os detalhes. Os usuários com privilégios de administrador de backup do cluster de usuário podem ver todos os planos de backup na organização. Os usuários com a função "Criador de backup" podem ver todos os planos de backup no projeto selecionado.

API

Para conferir um plano de backup, use o comando kubectl get:

kubectl get clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -o yaml

Substitua:

  • CLUSTER_BACKUP_PLAN: o nome do plano de backup a ser visualizado.
  • PROJECT_NAME: o nome do projeto do GDC.

Editar um plano de backup

Edite um plano de backup usando o console do GDC ou a API.

Console

  1. Faça login no console do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Selecionar projeto e escolha uma organização ou um projeto, dependendo da sua função:
    • Administrador de backup de cluster de usuário: selecione uma organização para ver todos os planos de backup em uma organização ou selecione um projeto para ver todos os planos de backup em um projeto.
    • Criador de backup: selecione um projeto para conferir todos os planos de backup dele.
  4. Clique na guia Planos de backup.
  5. Clique no nome do plano de backup que você quer editar.
  6. Clique na guia Configuração do plano para conferir os campos que podem ser modificados.
  7. Clique no ícone Editar em Programação e retenção para editar esse recurso:

    1. Para atualizar uma programação, insira uma expressão usando a sintaxe cron padrão no campo String CRON. Por exemplo, a expressão 10 3 * * * cria um backup às 3h10 todos os dias. Todos os horários são interpretados como UTC. O intervalo mínimo entre backups programados é de 10 minutos.
    2. No campo Excluir backups após, defina o número de dias em que o backup será mantido. Quando o número de dias é atingido, o backup é excluído automaticamente.
    3. No campo Impedir exclusão por, defina o número de dias em que os backups não podem ser excluídos.

    4. Para bloquear a política de retenção, clique no ícone de bloqueio de Desativado para Ativado.

    5. Clique no botão Salvar para confirmar as mudanças.

API

Para editar um plano de backup, use o comando kubectl edit para modificar o recurso personalizado ClusterBackupPlan. Esse comando abre a configuração YAML do recurso no editor de texto padrão.

kubectl edit clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME

Substitua:

  • CLUSTER_BACKUP_PLAN: o nome do plano de backup a ser editado.
  • PROJECT_NAME: o nome do projeto do GDC.

No editor, é possível modificar campos como:

  • spec.backupSchedule.cronSchedule: atualize a frequência de backup.
  • spec.backupSchedule.paused: ative ou desative a programação de backup.
  • spec.retentionPolicy.backupRetainDays: mudar por quanto tempo os backups são mantidos.
  • spec.retentionPolicy.backupDeleteLockDays: mude o período de bloqueio de exclusão.
  • spec.retentionPolicy.locked: bloqueie a política de retenção.
  • spec.deactivated: desative o plano de backup. Definir esse campo como "true" impede a criação de backups e outras atualizações.

Desativar um plano de backup

Desative um plano de backup usando o console do GDC ou a API:

Console

  1. Faça login no console do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Selecionar projeto e escolha uma organização ou um projeto, dependendo da sua função:
    • Administrador de backup de cluster de usuário: selecione uma organização para ver todos os planos de backup ou um projeto para ver todos os planos de backup em um projeto.
    • Criador de backup: selecione um projeto para conferir todos os planos de backup nele.
  4. Clique na guia Planos de backup.
  5. Clique no nome do plano de backup que você quer desativar.
  6. Clique no botão Desativar plano.
  7. Insira o nome do plano de backup que você está desativando no campo.
  8. Clique no botão Desativar para concluir a desativação do plano de backup.

API

Para desativar um plano de backup, defina o campo deactivated como true:

kubectl patch clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -p '{"spec":{"deactivated":true}}' --type=merge

Substitua:

  • CLUSTER_BACKUP_PLAN: o nome do plano de backup a ser desativado.
  • PROJECT_NAME: o nome do projeto do GDC.

A seguir