본문 바로가기

Kubernetes

k8s EKS velero S3 연동하여 설치하기

반응형

Client 환경: Ubuntu 22.02
k8s 환경: EKS
필요도구: awscli

1. Velero Client(Velero CLI) 설치하기

wget https://github.com/vmware-tanzu/velero/releases/download/v1.12.1/velero-v1.12.1-linux-amd64.tar.gz
tar -xvf velero-v1.12.1-linux-amd64.tar.gz
sudo mv velero-v1.12.1-linux-amd64/velero /usr/local/bin

# 자동완성은 아래 링크 확인하여 본인 환경으로 세팅

https://velero.io/docs/v1.12/customize-installation/#optional-velero-cli-configurations

2. EKS에 Velero 설치하기

#필요한 변수 선언

BUCKET={BUCKET NAME}
REGION={REGION NAME}

#AWS IAM Velero User 생성

aws iam create-user --user-name velero

# 알맞는 Policy 생성

cat > velero-policy.json <<EOF
{
    "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}/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${BUCKET}"
            ]
        }
    ]
}
EOF

# Velero User에 Policy 등록

aws iam put-user-policy \
  --user-name velero \
  --policy-name velero \
  --policy-document file://velero-policy.json

# Access, Privatet Key 발급

# Access Key 생성 및 키파일만들기
aws iam create-access-key --user-name velero

# 위에 출력된 Access, Private Key 파일로 저장하기

# vi credentials-velero

[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>

# Velero CLI 로 설치하기

velero install
    --provider aws \
    --bucket $BUCKET \
    --secret-file ./credentials-velero \
    --backup-location-config region=$REGION \
    --snapshot-location-config region=$REGION \
    --plugins velero/velero-plugin-for-aws

3. 확인

# 버전확인

velero version

Client:
        Version: v1.12.1
        Git commit: 5c4fdfe147357ec7b908339f4516cd96d6b97c61
Server:
        Version: v1.12.1

# S3 확인
PHASE 부분이 Aaliable 이면 정상적으로 설치완료

velero backup-location get

NAME      PROVIDER   BUCKET/PREFIX   PHASE       LAST VALIDATED                  ACCESS MODE   DEFAULT
default   aws        s3-dev-velero   Available   2023-11-03 14:30:12 +0900 KST   ReadWrite     true
반응형