DevOps/k8s

[CKA] ETCD 백업 및 복구 테스트

Sophie소피 2023. 11. 8. 13:02

안녕하세요. 

CKA 시험 유형 중 하나인 ETCD 백업 및 복구 테스트 문제를 풀어보도록 하겠습니다.

저의 쿠버네티스 환경은 minikube로 etcd백업 및 복구 테스트를 진행할 수 없어

KodeKloud Mock Exam2 풀이를 통해 ETCD 백업 및 복구 테스트하는 방법에 대해 알아보겠습니다.

 

문제 1. Take a backup of the etcd cluster and save it to /opt/etcd-backup.db.

 

etcd 데이터베이스 백업 환경 변수를 설정하여 etcdctl을 사용할 수 있도록 환경을 구성합니다.

#etcdctl이 사용하는 버전 
export ETCDCTL_API=3

#etcd 설정 파일이 위치한 디렉토리로 이동
cd /etc/kubernetes/manifests

해당 명령어를 통해 ETCD 구성 파일을 확인합니다.

etc/kubernetes/kpi/etcd 경로를 보면 내가 설정해야 하는 cert 파일을 확인할 수 있습니다.

아래 명령어를 통해 현재 etcd의 내용을 특정 경로 확인하여 백업할 수 있습니다.

cat etcd.yaml

etcd 데이터베이스의 스냅샷을 생성하여 파일에 저장합니다.

 

 

 

 

  • -cacert, -cert, -key: 각각 etcd 서버의 인증서와 키 파일을 사용하여 인증
  • snapshot save /opt/etcd-backup.db: etcd 데이터베이스의 스냅샷을 /opt/etcd-backup.db 파일에 저장
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save /opt/etcd-backup.db

 

 

Snapshot saved at /opt/etcd-backup.db

 

 


추가 예상 문제)
그렇다면 Restore는 어떻게 할까?

아래 명령어는 은 로컬 시스템에 있는 etcd 데이터베이스 스냅샷 파일 (/opt/etcd-backup.db)을

사용하여 etcd 클러스터를 Restore하는 명령어입니다.

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 snapshot restore /opt/etcd-backup.db
  • -endpoints 127.0.0.1:2379: 이 옵션은 etcd 클러스터에 연결할 엔드포인트를 지정합니다. 여기서는 로컬 호스트의 2379 포트에 있는 etcd 인스턴스에 연결하고 있습니다.
  • snapshot restore /opt/etcd-backup.db: 이 명령은 etcd 데이터베이스의 Restore를 수행합니다.
  • /opt/etcd-backup.db에 있는 스냅샷 파일을 사용하여 etcd 데이터베이스를 Restore 합니다.

 

8e9e05c52164694d라는 식별자를 가진 새로운 멤버가 http://localhost:2380 주소로

클러스터의 cdf818194e3a8c32에 추가되었습니다.

이는 복원된 데이터베이스의 구성에서 새로운 멤버가 클러스터에 성공적으로 추가되었음을 확인할 수 있습니다.


참조: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster