bitnami-etcd helm chart 옵션 중 snapshot 파일로 백업된 db를 복구하기 위해 다음과 같이 파라메터를 사용할 수 있다.
startFromSnapshot:
enabled: true
existingClaim: bitnami-etcd-snapshotter
snapshotFilename: db-2023-01-20_05-00
다른곳의 phase 의 snaphot 파일을 sudo 로 복사해온 경우
uid 1001 로 변경해줘야 한다.
sudo chown 1001:root db-2023-01-20_05-00
위 설정을 적용 후 etcd 클러스터를 재시작했지만 스냅샷 db 가 복구되지 않았다.
그래서 etcd container 접속해 다음 명령으로 복구를 시도하니
etcdctl snapshot restore /snapshot/db-2023-01-20_05-00 --data-dir /bitnami/etcd/data
--> /bitnami/etcd/data 를 읽을 수 없다고 에러가 발생했다.
bitnami-etcd 는 다음과 같은 구성요소를 가지고 있다.
- etcd bitnami-etcd-snapshotter(cronjob) 으로 container /snapshots/db-xxxx 로 백업되고 있음
- Statefulsets(sts)는 etcd pod 3개를 관리(순차적으로 시작해야함)
- 각 etcd pod는 /bitnami/etcd/data 경로를 Persistentvolumeclaims(pvc)로 저장하고 있다.
[해결방법]
1.우선 Statefulsets(sts) 삭제로 etcd pod 를 제거한다.(pvc 사용처를 없앤다.)
2.data-bitnami-etcd-0~2 pod가 사용했던 Persistentvolumeclaims(pvc, /bitnami/etcd/data) 삭제를 삭제한다.
3.이제 다음과 같이 파일(container /snapshots/db-xxxx)명 명시하고 재시작
이제 etcdkeeper 등으로 보면 스냅샷 db 내용이 복구된것을 확인 할 수 있다.
[bitnami-etcd-snapshotter (pvc) 삭제된 경우]
startFromSnapshot > enables: false 로 적용하면 bitnami-etcd-snapshotter pvc 가 생성된다.
이후 startFromSnapshot 를 활성화할 수 있다.
comments:
댓글 쓰기