image

O Velero é uma ferramenta open-source que ajuda a proteger e migrar cargas de trabalho Kubernetes. Ele permite criar backups automatizados e programados de objetos Kubernetes e restaurá-los quando necessário. Neste tutorial, vamos aprender a instalar e usar o Velero com o Minikube para criar backups e restaurar recursos no ambiente local.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte instalado em seu sistema:

  • Minikube: um ambiente de cluster Kubernetes local para testes e desenvolvimento
  • Kubectl: a ferramenta de linha de comando para gerenciar clusters Kubernetes
  • Velero: a ferramenta para backups e restauração de objetos Kubernetes

Passo 1: Instalar o Minikube

Para instalar o Minikube, siga as instruções da documentação oficial para o seu sistema operacional. Para este tutorial, vamos utilizar o Minikube com o driver VirtualBox.

Após a instalação, execute o comando abaixo para iniciar o Minikube:

minikube start

Passo 2: Arquivo de Credenciais

Crie um arquivo chamado credentials com o seguinte conteúdo relacionado ás suas credenciais na aws:

[default] 
aws_access_key_id = AWSXXAWSXXAWSXXAWSXX
aws_secret_access_key = awsxxawsxxawsxxawsxxawsxxawsxxawsxxawsxx
region=us-east-1

Passo 3: Instalar o Velero

Para instalar o Velero, execute os seguintes comandos:

# Baixar e instalar a última versão do Velero
wget https://github.com/vmware-tanzu/velero/releases/latest/download/velero-latest-linux-amd64.tar.gz
tar -xvf velero-latest-linux-amd64.tar.gz
sudo mv velero-v*-* /usr/local/bin/velero

# Criar namespace e secret para o Velero
kubectl create namespace velero

velero install \
    --provider aws \
    --plugins velero/velero-plugin-for-aws:v1.6.0 \
    --bucket anderovsk-velero.io \
    --backup-location-config region=us-east-1 \
    --snapshot-location-config region=us-east-1 \
    --secret-file ./credentials

# Verificar se o Velero foi instalado corretamente
velero version

O comando acima instala o Velero no cluster e cria um bucket S3 para armazenar os backups. Também é criado um secret para acessar o bucket S3, que deve ser configurado de acordo com as credenciais da sua conta da AWS.

Passo 4: Criar um backup

Para criar um backup, crie um deployment de exemplo:

kubectl create deployment nginx --image=nginx

Agora, crie um backup com o Velero:

velero backup create nginx-backup --include-namespaces default

O comando acima cria um backup do namespace “default”, incluindo o deployment “nginx”.

Passo 5: Restaurar um backup

Para restaurar o backup criado, primeiro, exclua o deployment atual:

kubectl delete deployment nginx

Em seguida, restaure o backup:

velero restore create --from-backup nginx-backup

O comando acima cria um novo deployment com as informações do backup.

Passo 6: Automatizar Backup

Este comando cria um agendamento de backup chamado “my-backup-schedule” que será executado a cada minuto. O backup incluirá todos os recursos no namespace “default”.

velero schedule create my-backup-schedule --schedule="* * * * *" --include-namespaces=default

Este comando mostra informações detalhadas sobre o agendamento de backup, incluindo o horário em que o próximo backup será executado.

velero schedule describe my-backup-schedule

Conclusão

Neste tutorial, aprendemos a instalar e usar o Velero com o Minikube para criar backups e restaurar recursos no ambiente local. Com o Velero, é possível proteger suas cargas de trabalho Kubernetes e migrá-las com segurança para outros clusters.