-
Notifications
You must be signed in to change notification settings - Fork 0
ETCD
k8s 가 사용하는 key:value
형태의 데이터를 저장하는 기반 스토리지(backing storage)로, 클러스터의 모든 데이터가 etcd 에 보관된다. 따라서 높은 신뢰성을 제공한다.
쿠버네티스의 마스터 노드에 존재하고, 하나의 pod 형태로 동작하므로 kube-system
네임스페이스에 etcd-k8s-master
pod 가 동작하는 것을 확인할 수 있다.
key:value
형태로 저장되므로 별도의 파일로 백업(snapshot
)이 가능하다. 이 형태의 파일이 DB 형태로 /var/lib/etcd/
경로 아래에 저장된다.
/var/lib/etcd
를 snapshot 파일로 복제해서 보존하는 것을 말한다.
backup 을 생성하기 위해 다음의 정보가 필요하다.
- etcd endpoint
- server key
- server certificate
- cacert certificate
💡 etcdctl : etcd 관리 명령 cli 로 k8s master node 에 etcdctl
을 설치하여 사용한다.
-
sudo cat /etc/kubernetes/manifests/etcd.yaml
다음 명령어를 통해 모든 정보를 얻을 수 있다.
- 명령어 실행
ETCDCTL_API=3 etcdctl --endpoints=https://192.168.49.2:2379 \
--cacert=/var/lib/minikube/certs/etcd/ca.crt \
--cert=/var/lib/minikube/certs/etcd/server.crt \
--key=/var/lib/minikube/certs/etcd/server.key \
snapshot save /home/knoldus/Desktop/knoldus/test_space/etcd.db
- 확인하기
ETCDCTL_API=3 etcdctl --write-out=table snapshot status /opt/backup/etcd.db
etcd의 watch api는 etcd의 변경 사항을 실시간으로 감지하기 위한 기능을 제공하는 api이다. watch api를 사용하면, etcd 클러스터의 key-value 저장소에서 변경 사항이 발생할 때마다 알림을 받을 수 있다.
watch api를 사용하면 클라이언트는 특정 디렉토리 혹은 키의 변경 사항을 감지할 수 있다. 이러한 변경 사항은 새로운 키가 추적되거나 기존 키의 값이 변경되거나 삭제될 때 발생한다. 감지된 변경 사항은 클라이언트에게 이벤트 형태로 전달되며, 클라이언트는 해당 이벤트를 처리할 수 있다.
watch api는 etcd 클러스터의 데이터 변경을 실시간으로 감지하고, 이를 활용하여 다양한 작업을 수행할 수 있다. 예로, 변경된 데이터에 대한 처리 로직을 실행하거나, 변경 사항을 기반으로 새로운 작업을 생성하거나 업데이트하는 등의 작업을 수행할 수 있다.
Reference
How to take a snapshot of etcd and restore it on the Kubernetes cluster.