Velero
O Velero é uma ferramenta para fazer backup, restaurar e migrar dados no Kubernetes. Ele permite criar backups, restaurar estados do cluster e realizar migrações entre clusters.
Para usar o Velero, você precisa instalar a CLI do Velero na sua máquina local e configurá-la no seu cluster Kubernetes.
Pré-requisitos Copiar link
Antes de iniciar a instalação, verifique se você tem:
- Acesso ao seu cluster Kubernetes configurado via
kubectl - Um bucket S3 para armazenar os backups
Crie um namespace separado para o Velero:
kubectl create namespace veleroCriar um secret S3 Copiar link
Para configurar o acesso do Velero ao bucket S3, crie um secret. Crie um arquivo de manifesto chamado velero-credentials-secret.yaml com o seguinte conteúdo:
apiVersion: v1
kind: Secret
metadata:
name: cloud-credentials
namespace: velero
type: Opaque
stringData:
cloud: |
[default]
aws_access_key_id=S3_Access_Key
aws_secret_access_key=S3_Secret_Access_KeySubstitua S3_Access_Key e S3_Secret_Access_Key pelas suas credenciais de acesso ao S3.

Aplique o manifesto:
kubectl apply -f velero-credentials-secret.yamlVerifique a criação do secret:
kubectl describe secrets cloud-credentials -n veleroO valor Data.cloud não deve estar vazio.
Instalar a CLI do Velero Copiar link
Linux Copiar link
Baixe o arquivo da versão mais recente do Velero na página oficial de releases do GitHub:
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.2/velero-v1.15.2-linux-amd64.tar.gzExtraia o arquivo:
tar -xvzf velero-v1.15.2-linux-amd64.tar.gzMova o binário do Velero para o diretório /usr/local/bin:
sudo mv ./velero-v1.15.2-linux-amd64/velero /usr/local/bin/macOS Copiar link
Para instalar o Velero no macOS:
brew install veleroWindows Copiar link
Para instalar o Velero no Windows usando Chocolatey:
choco install veleroVerificar a instalação Copiar link
Verifique a versão instalada:
velero versionInstalar o Velero no cluster Copiar link
Crie um arquivo values.yaml com a configuração mínima necessária:
namespace:
name: velero
labels: {}
credentials:
existingSecret: cloud-credentials
configuration:
backupStorageLocation:
- name: default
provider: aws
bucket: bucket_name
default: true
config:
region: us-2
s3ForcePathStyle: true
s3Url: https://s3.hmstorage.net
volumeSnapshotLocation:
- name: default
provider: aws
config:
region: us-2
initContainers:
- name: velero-plugin-for-aws
image: velero/velero-plugin-for-aws:v1.7.0
volumeMounts:
- mountPath: /target
name: pluginsDescrição dos parâmetros:
backupStorageLocation: configura o armazenamento de backupbucket: nome do bucket S3s3Url: URL do armazenamento S3 da HostmaninitContainers: adiciona o plugin necessário para integração com S3credentials.existingSecret: referencia o secretcloud-credentialscriado anteriormente com as chaves de acesso ao S3
Via painel de controle Copiar link
- Acesse a seção Kubernetes e clique no cluster
- Abra a aba Complementos e selecione Velero
- Ative Configuração avançada e envie o arquivo
values.yamlclicando em Carregar configuração a partir de um arquivo - Clique em Instalar
Aguarde a conclusão da instalação e verifique o status dos pods:
kubectl get pods -n veleroVia Helm Copiar link
Você também pode instalar o Velero usando o Helm.
- Adicione o repositório do Velero:
helm repo add velero https://vmware-tanzu.github.io/helm-charts
helm repo update- Instale o Velero usando o arquivo de configuração:
helm install velero velero/velero -f values.yaml --namespace velero- Verifique a instalação:
kubectl get pods -n veleroO status dos pods do Velero deve ser Running.
Usar Velero Copiar link
Para demonstrar como o Velero funciona, vamos criar um deployment de teste com Nginx e mostrar o processo de criar um backup, excluir recursos e depois restaurar os dados.
Criar um backup Copiar link
Crie um deployment com Nginx em um namespace separado:
kubectl create namespace nginx-test
kubectl create deployment nginx --image=nginx -n nginx-testCrie um backup:
velero backup create nginx-backup --include-namespaces nginx-testEspecificamos o parâmetro --include-namespaces para fazer backup do namespace inteiro. Você também pode usar outros parâmetros ao criar um backup:
--include-resources: inclui recursos específicos (ex.: pods, services)--exclude-resources: exclui recursos específicos--ttl: define o tempo de retenção do backup (ex.:10h15m0s)
Verifique o status do backup:
velero backup describe nginx-backupRestaurar dados Copiar link
Exclua o namespace de teste:
kubectl delete namespace nginx-testRestaure os recursos a partir do backup:
velero restore create --from-backup nginx-backupVerifique se o namespace e o deployment foram restaurados:
kubectl get all -n nginx-testGerenciar agendamentos e status de backup Copiar link
Além de criar backups manualmente, o Velero permite automatizar a criação de backups com agendamentos. Você também pode gerenciar backups existentes.
Configurar backups automáticos Copiar link
Você pode definir um agendamento para backups regulares. Por exemplo, para fazer backup de todos os namespaces todos os dias à meia-noite:
velero schedule create task_name --schedule "0 0 * * *" --include-namespaces '*'--schedule "0 0 * * *": agendamento no formato Cron (todos os dias às 00:00)--include-namespaces '*': inclui todos os namespaces
Para criar backups de um único namespace a cada hora:
velero schedule create task_name --schedule "0 * * * *" --include-namespaces my-namespaceVerifique os agendamentos:
velero schedule getSe uma tarefa agendada não for mais necessária, exclua com:
velero schedule delete task_nameVisualizar e gerenciar backups Copiar link
Liste todos os backups existentes:
velero backup getPara excluir um backup antigo:
velero backup delete backup_namePara verificar detalhes do backup, incluindo status e recursos:
velero backup describe backup_name --detailsEsses recursos oferecem um gerenciamento flexível de backups e permitem restaurar dados sempre que necessário.