EBS 스냅샷의 기능도 있지만 클러스터 단위의 전체 백업이 필요하거나 네임스페이스 단위의 백업이 필요한 경우 velero를 사용하게 된다.
velero는 pv의 내용도 백업하기 때문에 EBS Snapshot 기능보다 백업 범위가 넓은 점이 장점이다.
ENV
export BUCKET_NAME=<BUCKET_NAME>
export REGION_CODE=ap-northeast-2
export BACKUP_NAME=<BACKUP_NAME>
Shell
복사
Create Bucket
aws s3 mb s3://$BUCKET_NAME --region $REGION_CODE
Shell
복사
Create IAM User
aws iam create-user --user-name velero
Shell
복사
Policy
cat << EOF > velero-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObject",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::${BUCKET_NAME}/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::${BUCKET_NAME}"
]
}
]
}
EOF
Shell
복사
Put Policy
Create Access Key
aws iam create-access-key --user-name velero
Shell
복사
Velero CLI Install
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.2/velero-v1.15.2-linux-amd64.tar.gz
tar zxvf velero-v1.15.2-linux-amd64.tar.gz
sudo cp velero-v1.15.2-linux-amd64/velero /usr/local/bin/
Shell
복사
Create Secret File
cat << EOF > credentials-velero
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
EOF
Shell
복사
Velero Install
velero install \
--provider aws \
--bucket $BUCKET_NAME \
--secret-file ./credentials-velero \
--backup-location-config region=$REGION_CODE \
--use-volume-snapshots=false \
--plugins velero/velero-plugin-for-aws:v1.10.0
Shell
복사
Create Backup
velero backup create $BACKUP_NAME --include-namespaces skills --wait
Shell
복사
Get Backup List
velero get backup
Shell
복사
Restore to the backup state you created
velero restore create --from-backup $BACKUP_NAME --wait
Shell
복사