이 게시물은 아래 강의를 참고 하였습니다.
참고 강의 https://www.youtube.com/watch?v=dv_5WCYS5P8&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=4
문제)
작업 시스템 : k8s-master
First, create a snapshot of the existing etcd instance running at https://127.0.0.1:2379, saving the snapshot to /data/etcd-snapthot.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 etcdctl:
CA certificate: /etc/kubernetes/pki/etcd/ca.crt
Client certificate: /etc/kubernetes/pki/etcd/server.crt
Client key: /etc/kubernetes/pki/etcd/server.key
이론)
ETCD -> 쿠버네티스의 데이터 저장소
- 쿠버네티스 마스터 노드에 있음
- Kubernetes 의 모든 운영 정보를 가지고 있음
- 하나의 pod 형태로 동작한다
- key value 형태로 저장 -> 별도의 파일로 백업 (스냅샷) 가능
- 쿠버네티스의 모든 운영 정보를 데이터베이스 형태로 /var/lib/etcd에 저장되어있음
답안)
검색 키워드 : etcd backup -> Operating etcd clusters for Kubernetes | Kubernetes
특정 공간에 /data/etcd-snapshot-previous.db를 풀어주고 etcd에게 previous.db의 위치를 알려주면 이전 백업 파일로 복구가 된다.
$ kubectl config current-context # 현재 컨텍스트 확인
$ sudo -i -> root 계정으로 전환해야 etcd 백업 가능
$ etcdctl version # etcdctl 버전 확인
# etcd 백업 doc: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster 에서 아래 명령어 확인
ETCDCTL_API=3 etcdctl\
--endpoints=https://127.0.0.1:2379\
--cacert=<trusted-ca-file>\
--cert=<cert-file>\
--key=<key-file>\
snapshot save <backup-file-location>
위 명령어를 아래와 같이 수정하여 etcd 백업 실행
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-snapthot.db
# etcd 백업 복원 doc: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster 에서 아래 명령어 확인
ETCDCTL_API=3 etcdctl\
--data-dir <data-dir-location>\
snapshot restore snapshotdb
위 명령어를 아래와 같이 수정하여 etcd 백업 복원 실행
$ sudo ETCDCTL_API=3 etcdctl\
--data-dir /var/lib/etcd-previous\
snapshot restore /data/etcd-snapshot-previous.db
# etcd 설정 수정
$ sudo vi /etc/kubernetes/manifests/etcd.yaml
etcd 정상 동작 확인
$ sudo docker ps -a | grep etcd -> up 상태 확인
'k8s' 카테고리의 다른 글
CKA 준비 (4) multi-container Pod 생성하기 (0) | 2022.05.24 |
---|---|
CKA 준비 (3) Static pod 생성하기 (0) | 2022.05.23 |
CKA 준비 (2) Pod 생성하기 (0) | 2022.05.23 |
Ubuntu 20.04에 Kubernetes 설치 (2) Kubernetes 설치 및 kubernetes 클러스터 구성 (0) | 2022.05.18 |
Ubuntu 20.04에 Kubernetes 설치 (1) Ubuntu 20.04 환경 구성 및 Docker 설치 (0) | 2022.05.18 |