개요

ETCD는 Kubernetes 환경에서 쓰이는 모든 정보를 저장하는 일종의 DB이다.

 

key=value 형태의 데이터 저장소이기에 Snapshot을 저장하여 별도의 파일로 백업이 가능하다. 

 

ETCD 또한 Pod로 동작하며 주로 MasterNode에 static pod로 띄워지게 된다. 따라서 yaml파일은 /etc/kubernetes/manifasts 아래에 위치한다. 

 

이 ETCD를 Backup하고 Restrore하는 것이 CKA 시험에 자주 나오기에 직접 실습해보았다.  

 

전체적인 실습은 다음 공식문서를 보면서 따라갔다. 실제 시험에서도 공식문서를 볼 수 있기에 익숙해지면 좋다.

https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/

 

 

ETCD Backup

 

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 /opt/snapshot-pre-boot.db

 

 

 

ETCD Restore

 

ETCDCTL_API=3 etcdctl --data-dir /var/lib/etcd-new snapshot restore /opt/snapshot-pre-boot.db

 

그 후 controlplane yaml 파일을 수정한다. 수정 후 pod가 자동 재생성된다.

 

vi /etc/kubernetes/manifests/etcd.yaml

volumes:
  - hostPath:
      path: /var/lib/etcd-new
      type: DirectoryOrCreate
    name: etcd-data