개요
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
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubeadm을 이용해 Local K8S 구축 (0) | 2024.12.10 |
---|---|
Kubernetes 외부 ETCD Backup and Restore (0) | 2024.10.27 |
Kubernetes Cluster Upgrade (0) | 2024.10.24 |
Kubernetes Drain, Cordon and Uncordon (0) | 2024.10.23 |
Kubernetes InitContainer (0) | 2024.10.23 |