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.