티스토리 뷰

문제

ETCD backup & restore
• 작업 시스템 : k8s-master

First, create a snapshot of the existing etcd instance running at https://127.0.0.1:2379 , saving the
snapshot to /data/etcd-snapshot.db
Next, restore an existing, previous snapshot located at /data/etcd-snapshot-previous.db

The following TLS certificates/key are supplied for connecting to the server with etcdctl

CA certificate: /etc/kubernetes/pki/etcd/ca.crt
Client certificate: /etc/kubernetes/pki/etcd/server.crt
Client key: /etc/kubernetes/pki/etcd/server.key

문제 풀이

1. etcd 백업

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 /data/etcd-snapshot.db

 

2. etcd 이전 버전 복구

# 1. snapshot을 통한 etcd 복구
sudo etcdutl --data-dir /var/lib/etcd-previous snapshot restore /data/etcd-snapshot-previous.db

# tip. snapshot 복구 내용 확인
# sudo tree /var/lib/etcd-previous/
# /var/lib/etcd-previous/
# └── member
#    ├── snap
#    │   ├── 0000000000000001-0000000000000001.snap
#    │   └── db
#    └── wal
#        └── 0000000000000000-0000000000000000.wal
# 4 directories, 3 files

# 2. etcd, static pod yaml 내용 수정
sudo vim /etc/kubernetes/manifests/etcd.yaml
# - hostPath:
#      path: /var/lib/etcd -> /var/lib/etcd-previous으로 수정
#     type: DirectoryOrCreate
#   name: etcd-data

# tip. etcd pod 재시작 확인(cotainterd 기준)
# sudo crictl ps -a | grep etcd
  • 원래 etcd 데이터는 '/var/lib/etcd'에 저장
  • overwrite로 인한 문제 방지를 위해 '/var/lib/etcd-previous'로 별도로 복구 디렉터리 지정
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/10   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함