Esta página descreve como criar um plano de cópia de segurança para o GKE, que é usado para fazer cópias de segurança das suas cargas de trabalho no Google Kubernetes Engine (GKE).
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, a seleção das cargas de trabalho das quais fazer uma cópia de segurança e a região na qual os artefactos de cópia de segurança produzidos ao abrigo deste plano são armazenados.
Pode criar um ou mais planos de cópia de segurança para cada cluster. Existem dois motivos principais pelos quais pode querer mais do que um plano de cópia de segurança para um cluster:
- Quiser armazenar os artefactos de cópia de segurança em várias regiões. Neste caso, crie um plano de backup para cada região na qual quer armazenar backups.
Quer particionar as cópias de segurança do cluster, por exemplo:
- Em vez de uma cópia de segurança muito grande feita numa única hora do dia, quer 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 (por exemplo, cópias de segurança diárias para alguns espaços de nomes e cópias de segurança por hora para outros).
Recomendamos que cada cluster tenha, pelo menos, um plano de contingência.
A cópia de segurança para GKE não suporta a criação de cópias de segurança de um cluster de um projeto para outro. Só pode criar um plano de cópia de segurança para um cluster no mesmo projeto onde o cluster é criado.
Pode criar um plano de cópia de segurança com um método de agendamento de cópias de segurança para criar automaticamente cópias de segurança: agendamento inteligente ou agendamento cron. Recomendamos a programação inteligente para o seu plano de cópia de segurança. Isto garante que as cópias de segurança são criadas automaticamente para cumprir os requisitos do objetivo de ponto de recuperação (OPR). Para mais informações, consulte o artigo Criação e eliminação automáticas de cópias de segurança.
Se não quiser criar um plano de cópia de segurança com métodos de agendamento de cópias de segurança, tem de fazer uma cópia de segurança manual das suas cargas de trabalho. Depois de criar um plano de cópia de segurança, pode criar uma cópia de segurança a partir desse plano.
Antes de começar
Funções necessárias
Para receber as autorizações de que
precisa para criar e gerir um plano de cópia de segurança,
peça ao seu administrador para lhe conceder a função de
administrador de cópias de segurança do Backup for GKE (roles/gkebackup.backupAdmin
), que é um subconjunto da função de administrador do Backup for GKE (roles/gkebackup.admin
)
do IAM no seu projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um plano de cópia de segurança
Crie um plano de cópia de segurança através da CLI gcloud ou da Google Cloud consola.
gcloud
Para criar um plano de cópia de segurança com uma programação, execute o seguinte comando:
gcloud beta container backup-restore backup-plans create BACKUP_PLAN_NAME \
--project=PROJECT_ID \
--location=BACKUP_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 o seguinte:
BACKUP_PLAN_NAME
: o nome do plano alternativo que quer criar.PROJECT_ID
: o ID do seu projeto Google Cloud.BACKUP_LOCATION
: a região de computação para o recurso, por exemplo,us-central1
. Consulte o artigo Acerca das localizações 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
- Clusters regionais:
CLUSTER_NAME
: o nome do cluster do qual quer fazer uma cópia de segurança.--all-namespaces
: faz uma cópia de segurança de todos os espaços de nomes do cluster.Em alternativa, especifique:
--selected-applications
com uma lista de ProtectedApplications para fazer uma cópia de segurança.NAMESPACE1/APP1,NAMESPACE2/APP2,...
--selected-namespaces
com uma lista de espaços de nomes comoNAMESPACE1,NAMESPACE2,...
para fazer uma cópia de segurança.
Tem de especificar uma destas opções quando criar um plano de cópia de segurança.
--include-secrets
: um argumento opcional para incluir recursosSecret
se estiverem no âmbito da cópia de segurança.--include-volume-data
: um argumento opcional para incluir dados de volume persistentes na cópia de segurança. Não defina este argumento se quiser criar volumes vazios durante a restauração.ENCRYPTION_KEY
: um argumento opcional para definir o caminho para uma chave de encriptação gerida pelo cliente. Consulte o artigo Acerca da encriptação CMEK.TARGET_RPO_MINUTES
: argumento obrigatório seEXCLUSION_WINDOWS_FILE
estiver definido. Especifique o RPO de destino em minutos. A programação inteligente usa este valor para criar automaticamente cópias de segurança. O mínimo é de 60 minutos (1 hora) e o máximo é de 86 400 minutos (60 dias). Não pode definirTARGET_RPO_MINUTES
eCRON_SCHEDULE
em simultâneo num plano de cópia de segurança.EXCLUSION_WINDOWS_FILE
: um argumento opcional para definir intervalos de tempo durante os quais não é possível fazer uma cópia de segurança. Todas as horas são interpretadas como UTC. Este argumento só está disponível quandoTARGET_RPO_MINUTES
está definido.CRON_SCHEDULE
: um argumento opcional para definir uma programação cron que cria automaticamente cópias de segurança e suporta a sintaxe cron padrão. Por exemplo,"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. Não pode definirCRON_SCHEDULE
eTARGET_RPO_MINUTES
em simultâneo num plano de cópia de segurança.RETAIN_DAYS
: argumento obrigatório seTARGET_RPO_MINUTES
ouCRON_SCHEDULE
estiver definido. Especifique o número de dias para reter a cópia de segurança. As cópias de segurança deste plano são eliminadas automaticamente após o período de retenção expirar.DELETE_LOCK_DAYS
: um argumento opcional para especificar o número de dias durante os quais não é possível eliminar cópias de segurança. Se este valor estiver definido, não é possível eliminar as cópias de segurança criadas para esse plano (nem automaticamente nem manualmente) até que esse período expire.--locked
: um argumento opcional para bloquear a política de retenção do plano de cópia de segurança.
Para ver a lista completa de opções, consulte a
gcloud beta container backup-restore backup-plans create
documentação.
Crie um plano de cópia de segurança para todos os espaços de nomes com um RPO de 24 horas e uma única janela de exclusão
Crie um ficheiro window.yaml que contenha uma matriz YAML de exclusionWindows
.
exclusionWindows:
- startTime:
hours: 1
minutes: 0
duration: "3600s"
singleOccurrenceDate:
day: 1
month: 3
year: 2024
O comando seguinte cria um plano de cópia de segurança para todos os espaços de nomes com um RPO de destino de 24 horas e não são permitidas cópias de segurança entre as 01:00 e as 02:00 a 1 de março de 2024. As cópias de segurança são retidas durante sete dias e bloqueadas durante 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
Crie um plano de cópia de segurança para todos os espaços de nomes com um RPO de 2 horas e várias janelas de exclusão
Crie um ficheiro window.yaml que contenha uma matriz YAML de exclusionWindows
:
uma janela semanal e uma janela de ocorrência única.
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 seguinte cria um plano de cópia de segurança para todos os espaços de nomes com um RPO de destino de 2 horas e sem cópias de segurança permitidas das 01:00 às 02:00 a 1 de março de 2024 e das 15:00 às 16:30 todas as segundas e sextas-feiras. As cópias de segurança são retidas durante sete dias e bloqueadas durante 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
Crie um plano de cópia de segurança para todos os espaços de nomes com uma programação cron diária
O comando seguinte cria um plano de cópia de segurança para agendar uma cópia de segurança diária para todos os espaços de nomes às 05:20 todos os dias. As cópias de segurança são retidas durante sete dias e bloqueadas durante 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
Crie um plano de cópia de segurança para um espaço de nomes selecionado com uma programação cron por hora
O comando seguinte cria um plano de cópia de segurança para agendar uma cópia de segurança por hora para o espaço de nomes selecionado ( my-ns) aos 15 minutos de cada hora. As cópias de segurança são mantidas durante 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
Crie um plano alternativo para um ProtectedApplication
selecionado
O comando seguinte cria um plano de cópia de segurança para selecionar o 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
Consola
Siga as instruções abaixo para criar um plano de cópia de segurança na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique em Criar um plano de cópia de segurança.
Na secção Detalhes do plano, faça o seguinte:
- Selecione o cluster do qual quer fazer uma cópia de segurança.
- Introduza o nome do plano de cópia de segurança e a descrição opcional.
- Escolha uma localização para a cópia de segurança.
Para criar automaticamente cópias de segurança, na secção Agenda de cópias de segurança, selecione a caixa de verificação Ativar agenda de cópias de segurança e, de seguida, escolha um dos seguintes métodos:
Selecione Horário inteligente e faça o seguinte:
- No campo RPO alvo, introduza o RPO para o plano de contingência e, em seguida, selecione o valor do RPO em Minutos, Horas ou Dias no menu pendente.
- Opcional: selecione a caixa de verificação Definir um único período de exclusão de cópias de segurança recorrente para a exclusão de cópias de segurança.
- Escolha Diariamente ou Semanalmente na janela de exclusão.
- Na secção Repete-se aos, selecione os dias da semana a excluir do plano de cópia de segurança. Este campo só é apresentado para a janela de exclusão semanal.
- No campo Hora de início do período, introduza a hora de início da exclusão do plano de contingência.
- No campo Duração, introduza a duração da exclusão do plano de contingência e, de seguida, selecione Segundos, Minutos ou Horas no menu pendente.
- Opcional: se quiser criar uma ou mais janelas de exclusão de cópias de segurança de ocorrência única, selecione a caixa de verificação Definir uma ou mais datas de exclusão de cópias de segurança e faça o seguinte:
- Clique em Adicionar data de exclusão.
- No campo Data e hora de início da janela de exclusão, clique no ícone e, de seguida, selecione a Data e a Hora das cópias de segurança.
- No campo Duração, introduza a duração da exclusão do plano de contingência e, de seguida, selecione Segundos, Minutos ou Horas no menu pendente.
Selecione Programação cron e introduza uma expressão CRON com a sintaxe cron padrão. Por exemplo,
10 3 * * *
cria uma cópia de segurança todos os dias às 03:10. O intervalo mínimo entre cópias de segurança agendadas é de 10 minutos.
Na secção Política de retenção, faça o seguinte:
- Defina o número de dias para reter a cópia de segurança antes de esta ser eliminada automaticamente.
- Defina o número de dias durante os quais não é possível eliminar cópias de segurança.
- Para bloquear a política de retenção, clique no ícone de cadeado para alterar o estado do cadeado de Desativado para Ativado.
Na secção Configure o âmbito e a encriptação da cópia de segurança, faça o seguinte:
Selecione o âmbito do plano de cópia de segurança:
- Clique em Todo o cluster (incluindo todos os espaços de nomes) para fazer uma cópia de segurança de todos os recursos com espaço de nomes na cópia de segurança.
- Clique em Espaços de nomes selecionados neste cluster para escolher os espaços de nomes que quer incluir no plano de cópia de segurança.
- Clique em Selected protected applications within this cluster para adicionar recursos especificando o espaço de nomes e o nome da aplicação.
Clique na caixa de verificação Segredos para incluir recursos de segredos do Kubernetes.
Clique na caixa de verificação Dados de volume persistentes se quiser os dados de volume na sua cópia de segurança. Se optar por ignorar os dados de volume, não pode restaurar os dados de volume durante a restauração. No entanto, tem duas opções para escolher os dados de volume quando faz o restauro: Aprovisionar novos volumes ou Reutilizar volumes existentes.
Para ativar a encriptação CMEK, tem de conceder primeiro o acesso às chaves CMEK adequadas (consulte o artigo Acerca da encriptação CMEK).
- Clique na caixa de verificação Usar uma chave de encriptação gerida pelo cliente para selecionar uma chave.
Reveja os detalhes do plano de cópia de segurança e clique em Criar plano.
Terraform
Crie 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 o seguinte:
BACKUP_PLAN
: o nome do plano alternativo que quer criar.CLUSTER
: o nome do seu recursogoogle_container_cluster
.LOCATION
: a região onde quer armazenar as cópias de segurança.
Para mais informações, consulte gke_backup_backup_plan.
Veja um plano de cópia de segurança
Veja um plano de cópia de segurança e os respetivos detalhes através da CLI gcloud ou da Google Cloud consola.
gcloud
Para apresentar uma lista de todos os planos de cópia de segurança no projeto e na região, execute o seguinte comando:
gcloud beta container backup-restore backup-plans list \
--project=PROJECT_ID \
--location=LOCATION
Apenas para comandos list
, pode fornecer -
como valor para quaisquer parâmetros, exceto PROJECT_ID
. O valor -
funciona como um caráter
universal. O valor -
é a predefinição para qualquer parâmetro se não especificar uma opção de linha de comandos ou definir uma propriedade.
Para ver a lista completa de opções, consulte a
gcloud beta container backup-restore backup-plans list
documentação.
Para ver os detalhes de um plano de cópia de segurança, 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
gcloud beta container backup-restore backup-plans describe
documentação.
Consola
Use as seguintes instruções para ver um plano de contingência na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Planos de contingência.
Expanda o cluster e clique no nome do plano.
Clique no separador Detalhes para ver os detalhes do plano.
Atualize um plano de cópia de segurança
Pode atualizar as informações do plano de cópia de segurança, como a descrição, o âmbito da cópia de segurança, o modo de cópia de segurança, a encriptação ou a programação da cópia de segurança. Também pode modificar a política de retenção do plano de cópia de segurança, como o tempo de retenção das cópias de segurança ou o período durante o qual as cópias de segurança não podem ser eliminadas.
Atualize um plano de cópia de segurança através da CLI gcloud ou da Google Cloud consola.
gcloud
Para atualizar um plano de cópia de segurança, 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
gcloud beta container backup-restore backup-plans update
documentação.
Consola
Siga as instruções abaixo para atualizar um plano de cópia de segurança na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Planos de contingência.
Expanda o cluster e clique no nome do plano.
Clique no separador Detalhes para editar os detalhes do plano.
Clique em edit Editar para editar uma secção do plano e clique em Guardar alterações.
Pause um agendamento de cópia de segurança
Os planos de cópia de segurança podem ser pausados manual ou automaticamente para pausar os agendamentos de cópia de segurança. Quando o plano de cópia de segurança está pausado, não são criadas cópias de segurança automáticas. No entanto, continua a poder criar cópias de segurança manuais. Para ver instruções, consulte o artigo Crie uma cópia de segurança manual.
- Pausa manual: pode pausar manualmente um plano de cópia de segurança através da Google Cloud consola, gcloud ou Terraform.
Pausa automática: a Cópia de segurança do GKE pode pausar automaticamente um plano de cópia de segurança nos seguintes cenários:
Quando inicia uma cópia de segurança (programada ou manual), se ocorrer algum dos seguintes erros:
StatusInvalidCluster
: o erroStatusInvalidCluster
indica uma condição irrecuperável em que o nome do cluster é inválido ou as informações de metadados do cluster não estão disponíveis.GKEMetadataNotEnabledOnNodepool
: O erroGKEMetadataNotEnabledOnNodepool
representa uma condição irrecuperável em que o cluster tem a Workload Identity Federation para o GKE ativada, masGKE_METADATA
não está configurada em nenhum conjunto de nós, o que impede o agente de funcionar corretamente.AgentNotInstalled
: o erroAgentNotInstalled
indica uma condição irrecuperável em que o cluster não tem as definições de recursos personalizados do agente necessárias instaladas, o que implica uma instalação inadequada do agente.
Se uma cópia de segurança permanecer na fase Creating durante uma hora, pode indicar problemas de conetividade entre o cluster e/ou uma configuração incorreta do agente. Google Cloud
Para evitar falhas repetidas de cópias de segurança, o plano de cópia de segurança pode ser pausado automaticamente se apresentar um padrão de tentativas de cópia de segurança sem êxito prolongadas ou frequentes. Normalmente, esta situação ocorre quando o sistema deteta um período significativo sem uma cópia de segurança bem-sucedida ou uma série consistente de falhas recentes, o que indica um problema subjacente persistente.
Se o plano de cópia de segurança tiver sido pausado devido a falhas de cópia de segurança, pode resolver o problema de falha de cópia de segurança verificando o campo Risco de RPO atual na página de detalhes do Plano de cópia de segurança e o campo Motivo do estado nas cópias de segurança com falhas recentes. Se a pausa for não intencional e o problema for resolvido, retome o plano de cópia de segurança para continuar as cópias de segurança automáticas.
Pode configurar alertas para planos de cópia de segurança pausados e retomar a respetiva atividade quando os problemas subjacentes forem corrigidos. Para ver instruções, consulte o artigo Configure alertas para planos de cópia de segurança pausados.
gcloud
Para pausar uma programação de cópia de segurança, 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
gcloud beta container backup-restore backup-plans update
documentação.
Consola
Use as seguintes instruções para pausar uma programação de cópias de segurança na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Planos de contingência.
Expanda o cluster e clique no nome do plano.
Clique em Pausar agendamento e, de seguida, em Pausar agendamento na caixa de diálogo de confirmação.
Terraform
resource "google_gke_backup_backup_plan" "basic" {
name = "BACKUP_PLAN"
cluster = google_container_cluster.CLUSTER.id
location = "LOCATION"
backup_schedule {
paused = True
}
backup_config {
include_volume_data = true
include_secrets = true
all_namespaces = true
}
}
Substitua o seguinte:
BACKUP_PLAN
: o nome do plano de contingência que quer pausar.CLUSTER
: o nome do seu recursogoogle_container_cluster
.LOCATION
: a localização do plano de cópia de segurança.
Retome um plano de cópia de segurança
Consola
Use as instruções seguintes para retomar um plano de cópia de segurança na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Planos de contingência.
Expanda o cluster e clique no nome do plano.
Clique em Retomar programação e, de seguida, clique em Retomar programação na caixa de diálogo de confirmação.
Terraform
resource "google_gke_backup_backup_plan" "basic" {
name = "BACKUP_PLAN"
cluster = google_container_cluster.CLUSTER.id
location = "LOCATION"
backup_schedule {
paused = false
}
backup_config {
include_volume_data = true
include_secrets = true
all_namespaces = true
}
}
Substitua o seguinte:
BACKUP_PLAN
: o nome do plano de cópia de segurança que quer retomar.CLUSTER
: o nome do seu recursogoogle_container_cluster
.LOCATION
: a localização do plano de cópia de segurança.
Elimine um plano de cópia de segurança
Pode eliminar um plano de cópia de segurança através da CLI gcloud ou da Google Cloud consola. Não pode eliminar um plano de cópia de segurança se este contiver cópias de segurança.
gcloud
Para eliminar um plano de cópia de segurança, 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
gcloud beta container backup-restore backup-plans delete
documentação.
Consola
Use as seguintes instruções para eliminar um plano de cópia de segurança na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Planos de contingência.
Expanda o cluster e clique no nome do plano.
Clique em delete Eliminar plano.
Escreva o nome do plano de cópia de segurança e, de seguida, clique em Eliminar plano de cópia de segurança na caixa de diálogo de confirmação.
O que se segue?
- Saiba mais sobre como planear um conjunto de restauros.
- Saiba mais sobre como fazer uma cópia de segurança manual das suas cargas de trabalho.