Planeie um conjunto de cópias de segurança

Esta página descreve como criar e gerir planos de cópia de segurança para cargas de trabalho de clusters no Google Distributed Cloud (GDC) air-gapped.

Os planos de cópia de segurança fornecem as funções de configuração, localização e gestão para uma sequência de cópias de segurança. Um plano de cópia de segurança contém uma configuração de cópia de segurança, incluindo o cluster de origem e a seleção de cargas de trabalho para fazer uma cópia de segurança. A Google recomenda fornecer a cada cluster, pelo menos, um plano de backup.

Pode criar um ou mais planos de cópia de segurança para cada cluster. Pode querer dividir as cópias de segurança do cluster por uma das seguintes razões:

  • Em vez de ter uma cópia de segurança muito grande feita numa única hora do dia, quer ter várias cópias de segurança mais pequenas distribuídas ao longo do dia.
  • Quiser fazer uma cópia de segurança de algumas partes do cluster com mais frequência do que outras, como cópias de segurança diárias para alguns espaços de nomes e cópias de segurança por hora para outros.

Um único cluster ou máquina virtual (VM) pode pertencer a um ou mais planos de cópia de segurança. Um plano de cópia de segurança não pode abranger mais do que um cluster. No entanto, um único plano de cópia de segurança pode capturar várias VMs se existirem no mesmo cluster. Tem de associar todos os recursos de cópia de segurança e restauro a um nome de projeto.

Antes de começar

Para criar um plano de cópia de segurança, tem de ter o seguinte:

  • A função de identidade e acesso necessária:
    • Administrador de cópias de segurança de clusters de utilizadores: gere recursos de cópia de segurança, como planos de cópia de segurança e restauro, em clusters de utilizadores. Peça ao administrador de IAM da organização para lhe conceder a função de administrador de cópias de segurança de clusters de utilizadores (user-cluster-backup-admin). Para mais informações, consulte o artigo Definições de funções.
  • Se for um operador de aplicações, peça ao administrador com privilégios de administrador de cópias de segurança de clusters de utilizadores que crie um plano de cópia de segurança para si.
  • Quando faz uma cópia de segurança de um cluster de utilizadores, certifique-se de que anexa o projeto usado para criar o plano de cópia de segurança a esse cluster.

Crie um plano de cópia de segurança

Recomendamos que defina um agendamento cron para o plano de cópia de segurança, para que as cópias de segurança sejam criadas automaticamente de acordo com esse agendamento. Também pode fazer uma cópia de segurança manual das suas cargas de trabalho. Para mais informações, consulte o artigo Crie uma cópia de segurança manual.

Crie planos de cópia de segurança através da consola GDC ou da API.

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Criar plano de cópia de segurança.
  4. Na secção Detalhes do plano, conclua os seguintes passos e clique em Continuar:
    1. Na lista Cluster, selecione o cluster do qual quer fazer uma cópia de segurança.
    2. Na lista Projeto, selecione o projeto.
    3. No campo Nome do plano alternativo, introduza o nome do plano alternativo escolhido.
    4. (Opcional) Em Descrição do plano alternativo, introduza uma descrição para o plano alternativo.
    5. No campo Repositório de cópias de segurança, selecione um repositório de cópias de segurança. Os repositórios de cópias de segurança são um conjunto de implementações de armazenamento de objetos.
    6. Clicar em Seguinte.
  5. Na secção Âmbito e encriptação, conclua os seguintes passos e clique em Continuar:

    1. Selecione um dos seguintes âmbitos para o plano de cópia de segurança:

      1. Clique em Todo o cluster para fazer uma cópia de segurança de todos os recursos do namespace na cópia de segurança.
      2. Clique em Espaços de nomes selecionados no cluster para escolher os espaços de nomes no cluster para fazer uma cópia de segurança.
        1. Clique em Editar espaço de nomes do cluster e, de seguida, em Adicionar espaço de nomes do cluster para introduzir um espaço de nomes.
      3. Clique em Aplicações protegidas selecionadas neste cluster para adicionar recursos especificando o espaço de nomes e o nome da aplicação.
        1. Clique em Editar aplicações protegidas e, de seguida, em Adicionar aplicação protegida para introduzir um espaço de nomes e uma aplicação protegida.
    2. Clique em Incluir segredos para incluir recursos Secret do Kubernetes.

    3. Clique em Incluir dados de volume persistentes se quiser incluir os dados de volume na cópia de segurança. Desmarque esta caixa de verificação se quiser criar volumes vazios durante a cópia de segurança.

  6. Na secção Agendamento e retenção, conclua os seguintes passos e clique em Continuar:

    1. Para definir um agendamento, introduza uma expressão com a sintaxe cron padrão no campo String CRON. Por exemplo, a expressão 10 3 * * * cria uma cópia de segurança todos os dias às 03:10. Todas as horas são interpretadas como UTC. O intervalo mínimo entre cópias de segurança agendadas é de 10 minutos.
    2. No campo Eliminar cópias de segurança após, defina o número de dias durante os quais a cópia de segurança deve ser mantida. Quando o número de dias é atingido, a cópia de segurança é eliminada automaticamente.
    3. Defina o número de dias durante os quais não é possível eliminar cópias de segurança.
    4. Para bloquear a política de retenção, clique no ícone de cadeado para alterar o estado de Desativado para Ativado.
  7. Reveja os detalhes do plano de cópia de segurança e clique em Criar plano.

API

Crie um ClusterBackupPlan recurso personalizado no cluster para agendar cópias de segurança. Um plano de cópia de segurança agenda periodicamente cópias de segurança com base no backupSchedule. Os recursos ClusterBackupPlan são recursos de espaço de nomes. Segue-se um exemplo de um 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 o seguinte:

  • CLUSTER_BACKUP_PLAN: o nome do plano de cópia de segurança do cluster.
  • PROJECT_NAME: o nome do seu projeto do GDC.
  • CLUSTER_NAME: o nome do cluster do qual quer fazer uma cópia de segurança. O campo targetCluster que envolve tem os seguintes componentes:
    • targetClusterType: o tipo de cluster a fazer uma cópia de segurança, como UserCluster ou ManagementAPI. Este exemplo usa UserCluster.
    • targetClusterName: contém name, que é definido por CLUSTER_NAME.
  • CRON_SCHEDULE: um agendamento crontab que indica quando agendar cópias de segurança, como "*/30 * * * *". O intervalo mínimo entre cópias de segurança agendadas é de 10 minutos.
  • BACKUP_SCHEDULE_STATUS: se true, não são agendadas cópias de segurança periódicas.
  • NAME_SPACE: uma lista de espaços de nomes a incluir na cópia de segurança. O campo clusterBackupConfig incluído contém detalhes de configuração para cópias de segurança:
    • backupScope: indica os recursos dos quais é feita uma cópia de segurança. Este exemplo usa selectedNamespaces. Os valores possíveis incluem:
      • allNamespaces: captura todos os recursos em todos os espaços de nomes.
      • selectedNamespaces: captura recursos na lista de espaços de nomes especificados.
      • selectedApplication: captura recursos definidos por protectedApplications.
    • namespaces: aplicável se backupScope for selectedNamespaces.
  • CLUSTER_BACKUP_REPOSITORY: valor de clusterBackupRepositoryName em clusterBackupConfig. Este é o repositório de destino que armazena as cópias de segurança e tem de ser importado como ReadWrite.
  • VOLUME_DATA_INCLUDED: especifica se deve fazer uma cópia de segurança dos dados do volume. Este valor é false por predefinição. Se quiser incluir dados de volume na cópia de segurança, defina esta opção como true.
  • VOLUME_STRATEGY: o tipo de cópia de segurança de volume a realizar. Os valores possíveis incluem:
    • ProvisionerSpecific: tira partido das capacidades de cópia de segurança e restauro do aprovisionador de armazenamento subjacente. Use esta opção se includeVolumeData for true.
    • LocalSnapshotOnly: cria uma cópia num determinado momento do volume apenas no próprio sistema de armazenamento local.
    • Portable: oferece uma forma independente do armazenamento de fazer cópias de segurança de dados de volume.
  • SECRETS_INCLUDED: especifica se deve fazer uma cópia de segurança dos segredos. Este valor é false por predefinição. Se quiser incluir recursos do Kubernetes Secret na sua cópia de segurança, defina esta opção como true.
  • BACKUP_DELETE_LOCK_DAYS: impede a eliminação da cópia de segurança durante o número de dias especificado após a criação da cópia de segurança, por exemplo, 10 days.
  • BACKUP_RETAIN_DAYS: define o número total de dias para reter a cópia de segurança. Após este período, a cópia de segurança é eliminada automaticamente. Definir este valor para um número mais elevado pode levar à exaustão do armazenamento, enquanto defini-lo para um valor mais baixo pode aumentar o risco de perda de dados. Este valor está definido como 35 por predefinição se não for especificado. As políticas de retenção não substituem as políticas de retenção da localização de armazenamento nem podem exceder 90 dias.
  • BACKUP_PLAN_DESCRIPTION: uma descrição do plano de cópia de segurança.

Depois de criar um plano de cópia de segurança, as cópias de segurança são criadas automaticamente com a configuração de cópia de segurança especificada com base no horário de cópia de segurança.

Veja um plano de cópia de segurança

Ver um plano de cópia de segurança através da consola GDC ou da API.

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Selecionar projeto e selecione uma organização ou um projeto, consoante a sua função:
    • Administrador de cópias de segurança de clusters de utilizadores: selecione uma organização para ver todos os planos de cópia de segurança numa organização ou selecione um projeto para ver todos os planos de cópia de segurança num projeto.
    • Backup Creator: selecione um projeto para ver todos os planos de cópia de segurança num projeto.
  4. Clique no separador Planos de contingência.
  5. Clique num plano de cópia de segurança na lista para ver os respetivos detalhes. Os utilizadores com privilégios de administrador de cópias de segurança do cluster de utilizadores podem ver todos os planos de cópia de segurança na organização. Os utilizadores com a função Criador de cópias de segurança podem ver todos os planos de cópia de segurança no projeto selecionado.

API

Para ver um plano de cópia de segurança, use o comando kubectl get:

kubectl get clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -o yaml

Substitua o seguinte:

  • CLUSTER_BACKUP_PLAN: o nome do plano de cópia de segurança a ver.
  • PROJECT_NAME: o nome do seu projeto do GDC.

Edite um plano de cópia de segurança

Edite um plano de cópia de segurança através da consola GDC ou da API.

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Selecionar projeto e selecione uma organização ou um projeto, consoante a sua função:
    • Administrador de cópias de segurança de clusters de utilizadores: selecione uma organização para ver todos os planos de cópia de segurança numa organização ou selecione um projeto para ver todos os planos de cópia de segurança num projeto.
    • Criador de cópias de segurança: selecione um projeto para ver todos os planos de cópia de segurança num projeto.
  4. Clique no separador Planos de contingência.
  5. Clique no nome do plano de contingência que quer editar.
  6. Clique no separador Configuração do plano para ver os campos que podem ser modificados.
  7. Clique no ícone Editar para Horário e retenção para editar esse recurso:

    1. Para atualizar uma programação, introduza uma expressão com a sintaxe cron padrão no campo CRON string. Por exemplo, a expressão 10 3 * * * cria uma cópia de segurança todos os dias às 03:10. Todas as horas são interpretadas como UTC. O intervalo mínimo entre cópias de segurança agendadas é de 10 minutos.
    2. No campo Eliminar cópias de segurança após, defina o número de dias durante os quais a cópia de segurança deve ser mantida. Quando o número de dias é atingido, a cópia de segurança é eliminada automaticamente.
    3. No campo Impedir eliminação durante, defina o número de dias durante os quais não é possível eliminar cópias de segurança.

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

    5. Clique no botão Guardar para confirmar as alterações.

API

Para editar um plano de cópia de segurança, use o comando kubectl edit para modificar o recurso personalizado ClusterBackupPlan. Este comando abre a configuração YAML do recurso no seu editor de texto predefinido.

kubectl edit clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME

Substitua o seguinte:

  • CLUSTER_BACKUP_PLAN: o nome do plano de reserva a editar.
  • PROJECT_NAME: o nome do seu projeto do GDC.

No editor, pode modificar campos como os seguintes:

  • spec.backupSchedule.cronSchedule: atualizar a frequência da cópia de segurança.
  • spec.backupSchedule.paused: ative ou desative o horário da cópia de segurança.
  • spec.retentionPolicy.backupRetainDays: altere o período de retenção das cópias de segurança.
  • spec.retentionPolicy.backupDeleteLockDays: altere o período de bloqueio de eliminação.
  • spec.retentionPolicy.locked: bloquear a política de retenção.
  • spec.deactivated: desative o plano de cópia de segurança. Se definir este campo como "verdadeiro", impede a criação de cópias de segurança e atualizações adicionais.

Desative um plano de reserva

Desative um plano de cópia de segurança através da consola GDC ou da API:

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Backup para clusters.
  3. Clique em Selecionar projeto e selecione uma organização ou um projeto, consoante a sua função:
    • Administrador de cópias de segurança de clusters de utilizadores: selecione uma organização para ver todos os planos de cópia de segurança numa organização ou selecione um projeto para ver todos os planos de cópia de segurança num projeto.
    • Backup Creator: selecione um projeto para ver todos os planos de cópia de segurança num projeto.
  4. Clique no separador Planos de contingência.
  5. Clique no nome do plano de cópia de segurança que quer desativar.
  6. Clique no botão Desativar plano.
  7. Introduza o nome do plano de cópia de segurança que está a desativar no campo.
  8. Clique no botão Desativar para concluir a desativação deste plano de cópia de segurança.

API

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

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

Substitua o seguinte:

  • CLUSTER_BACKUP_PLAN: o nome do plano de reserva a desativar.
  • PROJECT_NAME: o nome do seu projeto do GDC.

O que se segue?