Planejar um conjunto de backups


Nesta página, descrevemos como criar um plano de backup para o GKE, usado para fazer backup das cargas de trabalho no Google Kubernetes Engine (GKE).

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, a seleção de quais cargas de trabalho fazer backup e a região em que os artefatos de backup produzidos nesse plano são armazenados.

É possível criar um ou mais planos de backup para cada cluster. Há dois motivos principais para querer mais de um plano de backup para um cluster:

  • Você quer armazenar seus artefatos de backup em várias regiões. Nesse caso, crie um plano de backup para cada região em que você quer armazenar backups.
  • Você quer particionar os backups do cluster, por exemplo:

    • 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).

Recomendamos que cada cluster tenha pelo menos um plano de backup.

É possível criar um plano de backup com um método de programação de backup para criar backups automaticamente: programação inteligente ou programação cron. Recomendamos o agendamento inteligente para o plano de backup. Isso garante que os backups sejam criados automaticamente para atender aos requisitos do objetivo de ponto de recuperação (RPO, na sigla em inglês). Para mais informações, consulte Criação e exclusão automáticas de backups.

Se você não quiser criar um plano com métodos de programação de backup, será necessário fazer backup manual das cargas de trabalho. Depois de criar um plano de backup, é possível criar um backup com base nele.

Antes de começar

Funções exigidas

Para ter as permissões necessárias para criar e gerenciar um plano de backup, peça ao administrador para conceder a você o Administrador de backup do Backup para GKE (roles/gkebackup.backupAdmin), que é um subconjunto do papel do IAM de Administrador do Backup para GKE (roles/gkebackup.admin) no seu projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Criar um plano de backup

Crie um plano de backup usando a gcloud CLI ou o Console do Google Cloud.

gcloud

Para criar um plano de backup com uma programação, execute o seguinte comando:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --encryption-key=ENCRYPTION_KEY
    --target-rpo-minutes=TARGET_RPO_MINUTES \
    --exclusion-windows-file=EXCLUSION_WINDOWS_FILE
    --cron-schedule=CRON_SCHEDULE \
    --backup-retain-days=RETAIN_DAYS \
    --backup-delete-lock-days=DELETE_LOCK_DAYS \
    --locked

Substitua:

  • BACKUP_PLAN: o nome do plano de backup que você quer criar.
  • PROJECT_ID: o ID do seu projeto do Google Cloud;
  • LOCATION: a região do Compute do recurso, por exemplo, us-central1; Consulte Sobre locais de recursos.
  • CLUSTER: o caminho relativo para o cluster:
    • Clusters regionais: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Clusters zonais: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • CLUSTER_NAME: o nome do cluster para backup.
  • --all-namespaces: faz backup de todos os namespaces do cluster.

    Como alternativa, especifique:

    • --selected-applications com uma lista de ProtectedApplications como NAMESPACE1/APP1,NAMESPACE2/APP2,... para fazer backup.
    • --selected-namespaces com uma lista de namespaces como NAMESPACE1,NAMESPACE2,... para fazer backup.

    Especifique uma dessas opções ao criar um plano de backup.

  • --include-secrets: um argumento opcional para incluir recursos Secret se eles estiverem no escopo do backup.

  • --include-volume-data: um argumento opcional para incluir dados de volume permanente no backup. Não defina esse argumento se quiser criar volumes vazios durante a restauração.

  • ENCRYPTION_KEY: um argumento opcional para definir o caminho para uma chave de criptografia gerenciada pelo cliente. Consulte Sobre a criptografia da CMEK.

  • TARGET_RPO_MINUTES: argumento obrigatório se EXCLUSION_WINDOWS_FILE estiver definido. Especifique o RPO de destino em minutos. A programação inteligente usa esse valor para criar backups automaticamente. O mínimo é de 60 minutos (1 hora) e o máximo é 86.400 minutos (60 dias). Não é possível definir TARGET_RPO_MINUTES e CRON_SCHEDULE simultaneamente em um plano de backup.

  • EXCLUSION_WINDOWS_FILE: um argumento opcional para definir janelas de tempo em que o backup não pode acontecer. Todos os horários são interpretados como UTC. Esse argumento só fica disponível quando TARGET_RPO_MINUTES está definido.

  • CRON_SCHEDULE: um argumento opcional para definir uma programação de cron que cria backups automaticamente e é compatível com a sintaxe cron padrão. Por exemplo, "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. Não é possível definir CRON_SCHEDULE e TARGET_RPO_MINUTES simultaneamente em um plano de backup.

  • RETAIN_DAYS: argumento obrigatório se TARGET_RPO_MINUTES ou CRON_SCHEDULE estiver definido. Especifique por quantos dias o backup será mantido. Os backups para esse plano são excluídos automaticamente após o término do período de armazenamento.

  • DELETE_LOCK_DAYS: um argumento opcional para especificar o número de dias em que os backups não podem ser excluídos. Se esse valor for definido, os backups criados para esse plano não poderão ser excluídos (manual ou automaticamente) até que a vida útil expire.

  • --locked: um argumento opcional para bloquear a política de retenção do plano de backup.

Para ver a lista completa de opções, consulte a documentação do gcloud beta container backup-restore backup-plans create.

Criar um plano de backup para todos os namespaces com um RPO de 24 horas e uma única janela de exclusão

Crie um arquivo window.yaml contendo uma matriz YAML de exclusionWindows.

exclusionWindows:
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

O comando a seguir cria um plano de backup para todos os namespaces com um RPO de destino de 24 horas, e nenhum backup é permitido da 1h às 2h em 1o de março de 2024. Os backups são retidos por sete dias e bloqueados por três dias após a criação:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=1440 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Criar um plano de backup para todos os namespaces com 2 horas de RPO e várias janelas de exclusão

Crie um arquivo window.yaml contendo uma matriz YAML de exclusionWindows: uma janela semanal e uma única janela de ocorrências.

exclusionWindows:
- startTime:
    hours: 15
    minutes: 0
  duration: "5400s"
  daysOfWeek:
    daysOfWeek:
    - MONDAY
    - FRIDAY
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

O comando a seguir cria um plano de backup para todos os namespaces com RPO alvo de 2 horas e nenhum backup permitido da 1h às 2h em 1º de março de 2024 e das 15h às 16h30 todas as segundas e sextas-feiras. Os backups são mantidos por sete dias e bloqueados por três dias após a criação:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=120 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Criar um plano de backup para todos os namespaces com uma programação cron diária

O comando a seguir cria um plano de backup para programar backups diários para todos os namespaces às 5h20 todos os dias. Os backups são mantidos por sete dias e bloqueados por três dias após a criação:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="20 5 * * *" \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Criar um plano de backup para um namespace selecionado com uma programação cron por hora

O comando a seguir cria um plano de backup para programar backup por hora para o namespace selecionado ( my-ns) no minuto 15 a cada hora. Os backups são retidos por três dias após a criação:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-namespaces=my-ns \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="15 * * * *" \
    --backup-retain-days=3

Criar um plano de backup para um ProtectedApplication selecionado

O comando a seguir cria um plano de backup para selecionar ProtectedApplication (my-ns/my-app).

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-applications=my-ns1/my-app1,my-ns2/my-app2 \
    --include-secrets \
    --include-volume-data

Console

Use as instruções a seguir para criar um plano de backup no console do Google Cloud:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. No menu de navegação, clique em Backup para o GKE.

  3. Clique em Criar um plano de backup.

  4. Na seção Detalhes do plano, faça o seguinte:

    1. Selecione o cluster para fazer backup.
    2. Insira o nome do plano de backup e uma descrição opcional.
    3. Escolha um local para o backup.
  5. Para criar backups automaticamente, na seção Programação de backup, marque a caixa de seleção Ativar programação de backup e escolha um dos seguintes métodos:

    1. Selecione Programação inteligente e faça o seguinte:

      1. Na função RPO alvo , insira o RPO para o plano de backup e selecione o valor do RPO minutos . Horário ou Dias no menu suspenso.
      2. Opcional: marque a caixa de seleção Definir uma única janela de exclusão de backup recorrente para a exclusão.
        1. Escolha Diariamente ou Semanalmente na janela de exclusão.
        2. Na seção Repetição em, selecione os dias da semana a serem excluídos do plano de backup. Esse campo só é exibido na janela de exclusão semanal.
        3. No campo Horário de início da janela, insira o horário de início da exclusão do plano de backup.
        4. No campo Duração, insira a duração da exclusão do plano de backup e selecione Segundos, Minutos ou Horas no.
      3. Opcional: se você quiser criar uma ou mais janelas de exclusão de backup de ocorrência única, marque a caixa de seleção Definir uma ou mais datas de exclusão de backup e faça o seguinte:
        1. Clique em Adicionar data de exclusão.
        2. No campo Data e hora de início da janela de exclusão, clique no ícone e selecione a Data e a Hora para os backups.
        3. No campo Duração, insira a duração da exclusão do plano de backup e selecione Segundos, Minutos ou Horas no.
    2. Selecione Cron schedule e insira uma expressão CRON usando a sintaxe cron padrão. Por exemplo, 10 3 * * * cria um backup às 3h10 todos os dias. O intervalo mínimo entre backups programados é de 10 minutos.

  6. Na seção Política de retenção, faça o seguinte:

    1. Defina o número de dias para reter o backup antes que ele seja excluído automaticamente.
    2. Defina por quantos dias os backups não podem ser excluídos.
    3. Para bloquear a política de armazenamento, clique no ícone de bloqueio para desativar o bloqueioDesativar aAtivadas.
  7. Na seção Configurar o escopo e a criptografia do backup, faça o seguinte:

    1. Selecione o escopo do plano de backup:

      • Clique em Cluster inteiro (incluindo todos os namespaces) para fazer backup de todos os recursos com namespace no backup.
      • Clique em Namespaces selecionados neste cluster para escolher os namespaces que você quer incluir no plano de backup.
      • Clique em Aplicativos protegidos selecionados neste cluster para adicionar recursos especificando o namespace e o nome do aplicativo.
    2. Clique na caixa de seleção Secrets para incluir os recursos do Kubernetes Secret.

    3. Clique na caixa de seleção Dados do volume permanente se quiser armazenar os dados de volume no backup. Se você optar por pular dados de volume, não será possível restaurá-los durante a restauração. No entanto, você terá duas opções para escolher dados de volume ao restaurar: Provisionar novos volumes ou Reutilizar volumes atuais.

    4. Para ativar a criptografia da CMEK, primeiro é necessário conceder acesso às chaves de CMEK adequadas. Consulte Sobre a criptografia da CMEK.

      1. Clique na caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente para selecionar uma chave.
  8. Confira os detalhes do plano de backup e clique em Criar plano.

Terraform

Criar um recurso google_gke_backup_backup_plan.

resource "google_gke_backup_backup_plan" "basic" {
   name = "BACKUP_PLAN"
   cluster = google_container_cluster.CLUSTER.id
   location = "LOCATION"
   retention_policy {
     backup_retain_days = 7
   }
   backup_schedule {
     cron_schedule = "17 3 * * *"
   }
   backup_config {
     include_volume_data = true
     include_secrets = true
     all_namespaces = true
   }
}

Substitua:

  • BACKUP_PLAN: o nome do plano de backup que você quer criar.
  • CLUSTER: o nome do recurso google_container_cluster.
  • LOCATION: a região em que você quer armazenar os backups.

Para mais informações, consulte gke_backup_backup_plan.

Ver um plano de backup

Para ver um backup e os detalhes dele, use a gcloud CLI ou o console do Google Cloud.

gcloud

Para listar todos os planos de backup no projeto e na região, execute o seguinte comando:

gcloud beta container backup-restore backup-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

Somente para comandos list, é possível fornecer - como o valor de qualquer parâmetro, exceto PROJECT_ID. O valor - atua como um caractere curinga. Se você não especificar uma opção de linha de comando ou definir uma propriedade, o valor - será o padrão para qualquer parâmetro.

Para ver a lista completa de opções, consulte a documentação do gcloud beta container backup-restore backup-plans list.

Para ver os detalhes de um plano de backup, execute o seguinte comando:

gcloud beta container backup-restore backup-plans describe BACKUP_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

Para ver a lista completa de opções, consulte a documentação do gcloud beta container backup-restore backup-plans describe.

Console

Use as instruções a seguir para ver um plano de backup no console do Google Cloud:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine.

  2. No menu de navegação, clique em Backup para o GKE.

  3. Clique na guia Planos de backup.

  4. Expanda o cluster e clique no nome do plano.

  5. Clique na guia Detalhes para ver os detalhes do plano.

Atualizar um plano de backup

Atualize um plano de backup usando a gcloud CLI ou o console do Google Cloud.

gcloud

Para atualizar um plano de backup, por exemplo, adicionando uma nova descrição, execute o seguinte comando:

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

Para ver a lista completa de opções, consulte a documentação do gcloud beta container backup-restore backup-plans update.

Console

Use as instruções a seguir para atualizar um plano de backup no console do Google Cloud:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. No menu de navegação, clique em Backup para o GKE.

  3. Clique na guia Planos de backup.

  4. Expanda o cluster e clique no nome do plano.

  5. Clique na guia Detalhes para editar os detalhes do plano.

  6. Clique em Editar para editar uma seção do plano e clique em Salvar alterações.

Pausar uma programação de backup

É possível pausar sua programação de backup. Enquanto a programação estiver em pausa, os backups automáticos não serão criados. Você ainda pode criar backups manualmente.

gcloud

Para pausar uma programação de backup, execute o seguinte comando:

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --paused

Para ver a lista completa de opções, consulte a documentação do gcloud beta container backup-restore backup-plans update.

Console

Use as instruções a seguir para pausar uma programação de backup no console do Google Cloud:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. No menu de navegação, clique em Backup para o GKE.

  3. Clique na guia Planos de backup.

  4. Expanda o cluster e clique no nome do plano.

  5. Clique em Pausar programação e em Pausar programação na caixa de diálogo de confirmação.

Excluir um plano de backup

É possível excluir um plano de backup usando a gcloud CLI ou o console do Google Cloud. Não será possível excluir um plano de backup se ele contiver backups.

gcloud

Para excluir um backup, execute o seguinte comando:

gcloud beta container backup-restore backup-plans delete BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

Para ver a lista completa de opções, consulte a documentação do gcloud beta container backup-restore backup-plans delete.

Console

Use as instruções a seguir para excluir um plano de backup no console do Google Cloud:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. No menu de navegação, clique em Backup para o GKE.

  3. Clique na guia Planos de backup.

  4. Expanda o cluster e clique no nome do plano.

  5. Clique em Excluir plano.

  6. Digite o nome do plano de backup e clique em Excluir plano de backup na caixa de diálogo de confirmação.

A seguir