쿠버네티스를 공부하는데 etcd
가 뭔지 몰라 정리한 글이다.
클러스터들을
key-value
형태로 저장하는 저장소로
모든 클러스터의 데이터를 담고 있는 Database
이다.
고가용성
을 위해 여러 곳에분산되어 동기화
되어 있으며
쿠버네티스 클러스터의 정보를 저장
한다.
다음 사진을 보면 etcd-master
가 있는걸 확인할 수 있다.
etcd
는 쿠버네티스의 전체적인 정보를 담고 있다.
만약 환경이 바뀌어etcd
가 사라지거나 실수로etcd
가 삭제된다면
기존에 구성했던 환경들이 모조리 삭제되버린다.
이를 방지하기 위해 백업을 주기적으로 해야한다.
etcdctl snapshot save <스냅샷 파일 경로>
저기서 특정 파일을 백업할 수 있다.
아래 명령어를 입력해 파일 경로를 확인하고 파일 경로 확인
ps -ef | grep kube | grep trusted-ca-file
ps -ef | grep kube | grep cert-file
ps -ef | grep kube | grep key-file
위의 명령어를 통해 입력 후 앞서 확인한 파일의 스냅샷을 생성한다.
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 member
/var/lib/etcd-new
에 스냅샷 파일 복구etcd pod
의 구성정보를 복원된 경로(/var/lib/etcd-new
)로 수정ETCDCTL_API=3 etcdctl \
--data-dir <data-dir-location> \
snapshot restore <snapshot-file-location>
ETCDCTL_API=3 etcdctl \
--data-dir /var/lib/etcd-new \
snapshot restore /tmp/etcd-backup
etcd.yaml
: /etc/kubernetes/manifests/etcd.yaml
CA certificate
: /etc/kubernetes/pki/etcd/ca.crt
Client certificate
: /etc/kubernetes/pki/
Client key
: /etc/kubernetes/pki/etcd/server.key
우선은 여기까지 공부하고 다음에 조금 더 자세하게 공부한다.
https://tech.kakao.com/2021/12/20/kubernetes-etcd/