Net Eng

[CKA] - etcd Backup & Restore 본문

Cloud/Kubernetes

[CKA] - etcd Backup & Restore

欲心 2024. 1. 18. 08:57

[선수 지식]

* POD(etcd) : kubectl get pods -n kube-system

* Static Pod(etcd) : /etc/kubenetes/manifests/etcd.yaml

* volume : /var/lib/etcd/ -- volume mount --> /var/lib/etcd

 

[선수 작업]

- 작업 디렉토리 생성

mkdir -p /data

 

- 백업본 생성

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 /data/etcd-snapshot-previous.db

 


 

[문제]

Q. First, create a snapshot of the existing etcd instance running at https://127.0.0.1:2379, saving the snapshot to /data/etcd-snapshot.db. Next, restore an existing, previous snapshot located at /data/etcd-snapshot-previous.db.

 

The following TLS certificates/key are supplied for connecting to the server with etcctl:

CA certificate: /etc/kubernetes/pki/etcd/ca.crt

Client certificate: /etc/kubernetes/pki/etcd/server.crt

Client key: /etc/kubernetes/pki/etcd/server.key

 

작업 노드: master


[풀이]

kubectl config current-context

* 현재 컨텍스트 확인

 

ssh k8s-master

* 작업 시스템으로 접속

 

etcdctl version
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 /data/etcd-snapshot.db

* etcd 백업

 

sudo ls -l /data/etcd-snapshot.db

* 백업 내용 확인

 

sudo ETCDCTL_API=3  etcdctl snapshot restore \
--data-dir /var/lib/etcd-previous \
/data/etcd-snapshot-previous.db

* etcd 복구

 

tree /var/lib/etcd-previous

* 복구 내용 확인

sudo vi /etc/kubernetes/manifests/etcd.yaml

* etcd Pod의 설정 변경

 

[수정전]
volumes:
  - hostPath:
      path: /etc/kubernetes/pki/etcd
      type: DirectoryOrCreate
    name: etcd-certs
  - hostPath:
      path: /var/lib/etcd
      type: DirectoryOrCreate
    name: etcd-data
[수정후]
volumes:
  - hostPath:
      path: /etc/kubernetes/pki/etcd
      type: DirectoryOrCreate
    name: etcd-certs
  - hostPath:
      path: /var/lib/etcd-previous
      type: DirectoryOrCreate
    name: etcd-data

* 파일 수정

 

ps -ef | grep etcd

* etcd pod 확인

 


 

[참고]

 

Operating etcd clusters for Kubernetes

etcd is a consistent and highly-available key value store used as Kubernetes' backing store for all cluster data. If your Kubernetes cluster uses etcd as its backing store, make sure you have a back up plan for the data. You can find in-depth information a

kubernetes.io

 

'Cloud > Kubernetes' 카테고리의 다른 글

[CKA] - Deployment & Pod Scale  (0) 2024.01.19
[CKA] - Side-car Container Pod 생성하기  (0) 2024.01.19
[CKA] - Multi-Container Pod 생성하기  (0) 2024.01.19
[CKA] - Static Pod 생성하기  (0) 2024.01.18
[CKA] - Pod 생성하기  (0) 2024.01.18