티스토리 뷰

1. 리소스 구성 백업

1) 데이터 저장소

- 쿠버네티스의 모든 구성정보는 etcd에 저장 

- 애플리케이션이 영구 스토리지를 사용하고 있다면, 이 또한 백업 대상이 됩니다. 

2) 구성 파일 관리

- 선언적 접근 방식: YAML 파일을 사용하여 리소스를 정의하고 kubectl apply 명령어로 적용. 이 방식은 구성 파일을 소스 코드 저장소에 저장하여 팀이 관리 

- 명령적 접근 방식: kubectl create 명령어를 사용하여 직접 리소스를 생성. 이 경우, 별도의 기록이 없으면 추적이 어려울 수 있음 

3) Kube API 서버 쿼리

- kubectl get all -all-namespaces -o yaml >all-deploy-services.yaml 명령어를 사용하여 모든 네임스페이스의 리소스를 YAML 형식으로 백업 가능 

- Velero와 같은 도구를 사용하여 자동화된 백업 솔루션을 구현가능

2. etcd 백업 

1) etcd 데이터베이스

- etcd는 클러스터의 상태정보를 저장하는 핵심 구성요소

- etcd의 데이터를 직접 백업하면 클러스터 전체의 상태를 보존 

2) 스냅샷 생성

- etcdctl snapshot save snapshot.db 명령어를 사용하여 etcd 데이터베이스의 스냅샷을 생성 

- 스냅샷 파일을 지정한 경로에 저장 

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/etcd/ca.crt --cert=/etc/etcd/etcd.crt --key=/etc/etcd/etcd.key \
snapshot save /desired/path/snapshot.db

- etcd endpoint에 필요한 인증서, 키, ca 인증서를 옵션으로 설정한뒤 스냅샷을 생성하며, 자신이 원하는 경로에 지정을 해서 snapshot을 저장한다. 

- 스냅샷 상태 확인 을 위해서는 아래와 같은 명령어를 사용한다. 

ETCDCTL_API=3 etcdctl snapshot status /desired/path/snapshot.db

 

3) 복구 절차:

- 복구를 위해 kube api 서버 서비스를 중지한 후 , etcdctl snapshot restore snapshot.db 명령어로 스냅샷을 복원

- 복원시 새로운 데이터 디렉토리가 생성되며 etcd 설정 파일에서 이 디렉토리를 사용하도록 변경해야함

- etcd 복구 시작전에 kubeAPI 서버를 중지해야함. (API 서버가 etcd에 의존하기 때문이다.)

sudo systemctl stop kube-apiserver

- etcd 스냅샷 복원을 위해서 아래와 같이 구체적인 명령어도 사용가능

ETCDCTL_API=3 etcdctl snapshot restore /path/to/snapshot.db \
  --data-dir /var/lib/etcd-from-backup \
  --initial-cluster master-1=https://192.168.5.11:2380,master-2=https://192.168.5.12:2380 \
  --initial-cluster-token etcd-cluster-1 \
  --initial-advertise-peer-urls https://${INTERNAL_IP}:2380

- --data-dir를 통해 복원된 데이터를 지정할 디렉토리를 설정할 수 있다. 

- 또한 etcd 클러스터도 구성할 수 있따. 

- etcd 서비스를 재시작하고 Kube API 서버 서비스를 다시 시작하여 클러스터를 원 상태로 복원

sudo systemctl daemon-reload
sudo systemctl restart etcd

sudo systemctl start kube-apiserver

4) 인증 및 보안

- etcd 명령어를 사용할 때는 인증서 파일과 클러스터 엔드포인트를 지정 

5) 비교 및 고려사항

- 리소스 구성백업은 개별 리소스의 구성을 보존하는 데 유용하며, 특히 관리형 쿠버네티스 환경에서는 etcd에 접근할 수 없는 경우에 적합

- etcd 백업은 전체 클러스터 상태를 보존하는데 적합하지만, etcd에 대한 직접적인 접근 권한이 필요 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함