velero는 쿠버네티스 자원을 백업 및 복구 할수 있도록 도와주는 도구 입니다.
velero는 helm 배포 및 velero CLI를 이용한 배포 방식이 있습니다.
이번 포스팅에서는 velero CLI를 이용합니다.
또한 제 개인 연구환경이 On-premise환경이므로 MinIO를 백엔드로 이용합니다.
Velero
velero란?
Velero는 Kubernetes 클러스터에 대한 백업 및 복구, 복제, 마이그레이션을 지원하는 오픈소스 도구입니다. Velero를 사용하면 클러스터의 리소스와 Persistent Volume(PV)의 데이터를 백업하고 복구할 수 있어, 클러스터 재해 복구 및 데이터 보호 작업을 쉽게 수행할 수 있습니다.
binary다운로드
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.0/velero-v1.15.0-linux-amd64.tar.gz
압축 해제
압축 해제후 실행파일 경로로 복사합니다.
tar -xvf velero-v1.15.0-linux-amd64.tar.gz
cd velero-v1.14.1-linux-amd64/
cp velero /usr/bin/velero
MinIO 설정(필요)
MinIO 배포 방법은 생략합니다.
Access Key를 생성
백엔드로 사용할 MinIO에서 Access Key를 생성합니다.
(필요시 리전정보 설정이 필요 할 수 있습니다.)
버킷을 생성합니다.
Velero 추가 설정 및 배포
credential 설정
credentials-velero이름으로 MinIO접근 정보를 생성합니다.
[default]
aws_access_key_id = ######키##########
aws_secret_access_key = ######키##########
배포
CSI드라이버를 이용하는 퍼블릭 환경은 –use-node-agent옵션을 제외합니다.
MinIO Address예시: https://minio.example.com:9000
### restic 모드 설치
velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.2.1 --bucket ${bucket} --secret-file ./credentials-velero --use-volume-snapshots=false --use-node-agent --backup-location-config region=${Region},s3ForcePathStyle="true",s3Url=${MinIO Address}
velero사용
namespace기준 백업
velero backup create ${backup name} --include-namespaces ${k8s namespace}
복원
velero restore create --from-backup test-backup