etcd backup & restore

장동민·2022년 7월 24일
0

CKA 자격증 준비

목록 보기
1/13

1. ETCD

  • Coreos가 만든 분산 key:value 형태의 데이터 스토리지
  • 쿠버네티스 클러스터의 정보를 저장(memory)해서 사용
  • 모든 etcd 데이터는 etcd 데이터베이스 파일에 보관 : /var/lib/etcd
  • etcd 관리 명령 : etcdctl
  • etcdctl 설치 확인
    1. ETCD를 호스팅 할 시스템에 ssh 로그인

    2. 동작중인 etcd 버전과 etcdctl 툴의 설치여부를 확인

✍ cAdvisor : Worker node에 존재하며 컨테이너 엔진이 만든 수많은 이벤트(이미지 다운로드, 컨테이너 Running, stop된 컨테이너, CPU와 메모리가 어떻게 사용되는지)를 수집


2. ETCD backup

  • master의 장애와 같은 예기치 못한 사고로 인해 ETCD 데이터베이스가 유실될 경우를 대비해서 Backup API를 제공

  • ETCD snapshot

  • ETCD Backup 명령
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=<trusted-ca-file> --cert=<cert-file> --key=<key-file> \
  snapshot save <backup-file-location>
  • trusted-ca-file 확인
$ ps -ef | grep kube | grep trusted-ca-file

  • cert-file 확인
$ ps -ef | grep kube | grep cert-file

  • key-file 확인
$ ps -ef | grep kube | grep key-file

📌 ETCD Backup 실행

$ sudo ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \ 
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  snapshot save /tmp/etcd-backup


3. ETCD restore

  • Snapshot으로 저장한 database파일을 동작중인 etcd에 적용하여 snapshot 생성시점으로 되돌리기
  • 단계
  1. snapshot 파일을 데이터베이스 파일로 복원
  2. 동작중인 etcd Pod의 구성정보를 복원된 데이터베이스 위치로 수정 적용

  • ETCD Restore 명령
$ ETCDCTL_API=3 etcdctl --data-dir <data-dir-location> snapshot restore snapshotdb

📌 ETCD Restore 실행

$ sudo ETCDCTL_API=3 etcdctl --data-dir=/var/lib/etcd-new snapshot restore /tmp/etcd-backup

  • ETCD Restore 확인

  • etcd Pod에 복원된 etcd-data 위치를 적용하고 Pod 다시 시작(마지막 hostPath의 path 변경)
$ sudo vi /etc/kubernetes/manifests/etcd.yaml
  • docker 명령으로 etcd가 restart 되었는지 확인
$ sudo docker ps -a | grep etcd

  • 복원되었는지 확인

profile
나만의 데이터베이스

0개의 댓글

관련 채용 정보