holssi 님의 블로그
[CKA] 기출문제 ETCD (3) 본문
ETCD는 CoreOS가 만든 key:value 형태의 분산 데이터 스토리지이다
고가용성을 위해 여러 곳에 분산되어 동기화되어 있고, 모든 ETCD 데이터는 /var/lib/etcd에 보관한다
ETCD 버전과 ETCDCTL 버전 확인
etcd --version
etcdctl version

member 디렉토리가 있는 것을 확인할 수 있다
ETCD 백업
etcdctl snapshot save [스냅샷 파일 경로]
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=[Trusted_ca_file] --cert=[cert_file] --key=[key_file] snapshot save [백업 파일 경로]
이때, cacert, cert, key 관련 정보를 다음과 같이 조회한다
ps -ef | grep kube | grep trusted-ca-file
ps -ef | grep kube | grep cert-file
ps -ef | grep kube | grep key-file
/tmp 폴더의 파일 목록을 보면 etcd-backup 이 생성되었음을 확인할 수 있다
ETCD Restore
/var/lib/etcd-new에 스냅샷 파일을 복구
동작중인 etcd 파드의 구성 정보를 복원된 데이터베이스 경로(/var/lib/etcd-new)로 수정함
/tmp/etcd-backup 스냅샷 파일을 이용해 /var/lib/etcd-new로 복구함
sudo ETCDCTL_API=3 etcdctl --data-dir [data_dir 경로] snapshot restore [snapshot-file 경로]
작업 클러스터는 k8s이고, https://127.0.0.1:2379에서 실행중인 etcd의 snapshot을 생성하고 snapshot을 /data/etcd-snapshot.db에 저장한다. 그런 다음 /data/etcd-snapshot-previous.db에 있는 기존의 이전 스냅샷을 복원한다. etcdctl을 이용해 서버에 연결하기 위해 다음 TLS 인증서/키가 제공된다
- ca certificate: /etc/kubernetes/pki/etcd/ca.crt
- client certificate: /etc/kubernetes/pki
- client key: /etc/kubernetes/pki/etcd/server.key
0. 컨텍스트 전환
kubectl config use-context k8s
1. 백업
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki --key=/etc/kubernetes/pki/etcd/server.key snapshot save /data/etcd-snapshot.db
2. 복원
sudo ETCDCTL_API=3 etcdctl --data-dir /data/etcd-snapshot-previous.db snapshot restore /data/etcd-snapshot.db
'CKA' 카테고리의 다른 글
| [CKA] 기출문제 kubeadm 업그레이드 (3) (0) | 2026.01.14 |
|---|---|
| [CKA] 기출문제 pod 로그 추출 (0) | 2026.01.14 |
| [CKA] 기출문제 ClusterRole, ClusterRoleBinding (3) (0) | 2026.01.14 |
| [CKA] ClusterRole, ClusterRoleBinding 문제 (2) (0) | 2026.01.14 |
| [CKA] ClusterRole, ClusterRoleBinding 문제 (1) (0) | 2026.01.14 |