etcd pod의 listen-client-urls, trusted-ca-file, cert-file, key-file 확인할 것
k describe -n kube-system po etcd-controlplane
Containers:
etcd:
Container ID: containerd://db4f66b4b8a19d0e4af8b0ced5934160f65f3305807615f2167a9d7deb562176
Image: registry.k8s.io/etcd:3.5.7-0
Image ID: registry.k8s.io/etcd@sha256:51eae8381dcb1078289fa7b4f3df2630cdc18d09fb56f8e56b41c40e191d6c83
Port: <none>
Host Port: <none>
Command:
etcd
--cert-file=/etc/kubernetes/pki/etcd/server.crt
--data-dir=/var/lib/etcd
--key-file=/etc/kubernetes/pki/etcd/server.key
--listen-client-urls=https://127.0.0.1:2379,https://192.5.77.9:2379
--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
스냅샷 생성 명령어
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>
/opt/ 디렉토리에 snapshot-pre-boot.db 이름의 스냅샷 생성
ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
snapshot save /opt/snapshot-pre-boot.db
/opt/snapshot-pre-boot.db 스냅샷을 /var/lib/etcd-from-backup 디렉토리로 복원
sudo ETCDCTL_API=3 etcdctl --data-dir /var/lib/etcd-from-backup \
snapshot restore /opt/snapshot-pre-boot.db
tree 설치
apt-get update
apt-get install tree
복원한 파일 확인
tree /var/lib/etcd-from-backup/
/var/lib/etcd-from-backup/
└── member
├── snap
│ ├── 0000000000000001-0000000000000001.snap
│ └── db
└── wal
└── 0000000000000000-0000000000000000.wal
3 directories, 3 files
- 이전 디렉토리(/var/lib/etcd)의 데이터를 새 디렉토리(/var/lib/etcd-from-backup)로 복사하는 작업 필요
- etcd 파드는 /etc/kubernetes/manifest 디렉토리에 배치된 정적 pod이기 때문에 자동으로 다시 생성되어 업데이트 됨
volumes:
- hostPath:
path: /var/lib/etcd-from-backup
type: DirectoryOrCreate
name: etcd-data
/etc/kubernetes/manifest/etcd.yaml 파일에서 --data-dir을 /var/lib/etcd-from-backup으로 변경하면 etcd-data의 VolumeMounts가 업데이트되어 mountPath가 변경되었는지 확인
Containers:
etcd:
Image: registry.k8s.io/etcd:3.5.7-0
Port: <none>
Host Port: <none>
Command:
etcd
...
--data-dir=/var/lib/etcd-from-backup
...
k describe -n kube-system po etcd-controlplane