velero, minio 설치 및 구성

문학적인유사성·2023년 6월 9일
0

뎁옵깃옵쿠베

목록 보기
7/53
post-thumbnail
post-custom-banner

설치 순서

aws s3나 클라우드 프로바이더 저장소를 쓰는게 일반적인 벨레로...
여기서는 사용이 불가능해서, 미니오를 설치 후 벨레로가 미니오를 바라보게 해야한다.

  1. 미니오 설치
  2. 크리덴셜 생성
  3. 벨레로가 해당 크리덴셜을 사용하게 해서 설치

위와 같은 순서로 구축하는 것으로 보임


미니오 설치

MinIo 헬름차트

인터넷망

helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull bitnami/minio
해당 tar파일 반입

폐쇄망

docker pull docker.io/bitnami/minio:2023.5.18-debian-11-r2 반입

imageRegistry: Harbor IP수정
imagePullSecrets 추가 
svc type: LoadBalancer로 추가
rootPassword 추가
Standalone으로 구성 (distributed는 ...? )
helm install minio . -n velero-system -f values.yaml

access key 생성

bucket 생성


벨레로 설치

벨레로 공식문서
벨레로 how it works?
벨레로 버전 체크

how it works?

벨레로 릴리즈 확인

인터넷 망

벨레로 CLI
https://github.com/vmware-tanzu/velero/releases/tag/v1.11.0

velero-v1.11.0-linux-amd64.tar.gz 다운로드 

벨레로 플러그인
docker pull velero/velero-plugin-for-aws:v1.6.2

폐쇄망

tar xvf velero-v1.11.0-linux-amd64.tar.gz
sudo mv velero /usr/local/bin


root@eksadmin:/eks-anywhere-vSphere/velero/velero-v1.11.0-linux-amd64# velero version
Client:
        Version: v1.11.0
        Git commit: 0da2baa908c88ec3c45da15001f6a4b0bda64ae2
<error getting server version: no matches for kind "ServerStatusRequest" in version "velero.io/v1">


kubectl create ns velero

velero install \
--provider aws \
--plugins 20.20.4.208:443/velero/velero-plugin-for-aws:v1.6.2 \
--bucket velero \
--secret-file ~/.minio-cred \
--use-volume-snapshots=false \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://20.20.4.214:9000/

결과

root@eksadmin:/eks-anywhere-vSphere/velero# velero version
Client:
        Version: v1.11.0
        Git commit: 0da2baa908c88ec3c45da15001f6a4b0bda64ae2
Server:
        Version: v1.11.0

이슈

ustomResourceDefinition/backups.velero.io: attempting to create resource
An error occurred:

Error installing Velero. Use `kubectl logs deploy/velero -n velero` to check the deploy logs: Error creating resource CustomResourceDefinition/backups.velero.io: the server could not find the requested resource

쿠버네티스 1.26버전에서 1.11을 올려야되는데, 다른 버전을 올려서 안되는 것
버전 변경으로 해결


  Warning  Failed     53s                kubelet            Failed to pull image "velero/velero:v1.11.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/velero/velero:v1.11.0": failed to resolve reference "docker.io/velero/velero:v1.11.0": failed to do request: Head "https://registry-1.docker.io/v2/velero/velero/manifests/v1.11.0": 
  Warning  Failed     28s (x2 over 53s)  kubelet            Error: ErrImagePull

오류 해결 공식문서
벨레로 플러그인만 반입하고 이미지를 반입하지 않아서...
추가적으로 변경해주었음.

 kubectl set image deployment/velero velero=${하버IP}:443/velero/velero:v1.11.0 -n velero

Migration 테스트

pod 삭제 후 지우는 간단한 테스트


root@eksadmin:/eks-anywhere-vSphere# velero backup create test-pods-back --include-namespaces=test
Backup request "test-pods-back" submitted successfully.
Run `velero backup describe test-pods-back` or `velero backup logs test-pods-back` for more details.
root@eksadmin:/eks-anywhere-vSphere# kubectl delete pods busybox -n test
pod "busybox" deleted

미니오에 아래와 같이 생성된다.

백업 시작 
velero restore create --from-backup test-pods-back

root@eksadmin:/eks-anywhere-vSphere# velero backup create test-pods-back --include-namespaces=test
Backup request "test-pods-back" submitted successfully.
Run `velero backup describe test-pods-back` or `velero backup logs test-pods-back` for more details.

아래와 같이 다시 생성된다!

Scheduling

Velero 공식문서 cron참고

10분마다 백업 되게 하기 
root@eksadmin:/eks-anywhere-vSphere# velero schedule create my-schedule --schedule="*/10 * * * *" --include-namespaces=test
root@eksadmin:/eks-anywhere-vSphere# velero schedule get
NAME          STATUS    CREATED                         SCHEDULE       BACKUP TTL   LAST BACKUP   SELECTOR   PAUSED
my-schedule   Enabled   2023-06-09 16:49:49 +0900 KST   */10 * * * *   0s           2s ago        <none>     false

생성 확인!

참고 티스토리0
참고 블로그1

profile
Are you nervous? Don't be
post-custom-banner

0개의 댓글