Velero
sobre
Estamos instalando o velero no GKE, o qual vai usar bucket GCS.
Kubeconfig
Carregue o kubeconfig
Gcloud cli
Você precisa ter um gcloud-client instalado e funcionado.
Permissões
liste
defina a var
export GSA_NAME=velero gcloud iam service-accounts create $GSA_NAME \ --display-name "Velero service account"crie a var
export SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \
--filter="displayName:Velero service account" \
--format 'value(email)')
````
crie a role
```bash
ROLE_PERMISSIONS=(
compute.disks.get
compute.disks.create
compute.disks.createSnapshot
compute.projects.get
compute.snapshots.get
compute.snapshots.create
compute.snapshots.useReadOnly
compute.snapshots.delete
compute.zones.get
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
iam.serviceAccounts.signBlob
)
gcloud iam roles create velero.server \
--project $PROJECT_ID \
--title "Velero Server" \
--permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
--role projects/$PROJECT_ID/roles/velero.server
gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
dê permissão e crie a chave
Instalando
Instale o velero
velero install velero-infra \
--provider gcp \
--plugins velero/velero-plugin-for-gcp:v1.13.0 \
--bucket plateduc-velero \
--secret-file ./velero.json
Checando a instalação
Saída esperada
Verifique se o location está disponivel
Saída esperada
NAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT
default gcp velero-infra Available 2025-04-07 07:41:11 -0300 -03 ReadWrite true
Se aparecer "PHASE Available" o location está funcionando.
Pronto, tudo instalado, agora vamos ver os comandos para fazer backup, restore e agendamentos.
Marcando volumes para backup
Você pode espeficiar os volumes de um POD que precisam ir pro restic assim
Ou se preferir, pode definir que todos os volumes do NS devem ir pro restic
Operando o velero
Fazendo backup completo
Fazendo backups definindo o alvo
Existem muitas formas de fazer backup pelo velero, a mais indicada para a SEMAD é o backup do namespace completo, com seus volumes.
Esse comando fará o backup do namespace e de todos os seus recursos.
Fazendo restore
velero restore create restore-bkp-20250497-ns-projetoX --from-backup bkp-20250497-ns-projetoX --wait
Note que o restore irá sobrescrever o namespace e seus dados, tenha cuidado.
Fazendo restore em outro NS
Esse método funciona para configurações, mas não funciona para volumes se for o mesmo cluster de onde o backup foi gerado.
Agendando backups
Agendando um backup do namespace projetoX, diariamente, 01 da manha, com tempo de vida de 240h.
velero schedule create backup-diario-projetoX \
--schedule="0 1 * * *" \
--include-namespaces projetoX \
--ttl 240h
--wait
refs
- https://velero.io
- https://velero.io/docs
- https://velero.io/docs/v1.17/basic-install/
- https://velero.io/docs/v1.17/backup-reference/
- https://velero.io/docs/v1.17/restore-reference/
- https://velero.io/docs/v1.17/resource-filtering/