본문 바로가기
INFRA/Operation

Kubernetes ETCD란?

by BTC_ryul 2023. 9. 1.

ETCD란?

etcd는 분산 시스템에서 중요한 설정과 구성 정보를 저장하기 위한 일관성 있는 키-값 저장소입니다. etcd는 대부분의 분산 시스템, 컨테이너 오케스트레이션 플랫폼, 클라우드 네트워크 구성, 서비스 디스커버리 및 동기화를 관리하기 위해 사용됩니다. 데이터의 일관성과 가용성이 중요한 환경에서 사용되며, 시스템 구성, 동기화 및 설정 관리를 효과적으로 지원합니다.

  1. 일관성 있는 분산 저장소: etcd는 일관성 있는 데이터 모델을 제공하여 여러 노드 간에 데이터의 일관성을 유지합니다. 이것은 여러 노드에서 발생하는 동시 업데이트와 충돌을 피하기 위해 사용됩니다.
  2. 키-값 저장소: etcd는 키와 값의 쌍으로 데이터를 저장합니다. 각 키는 고유한 이름을 가지며 해당 키에 연결된 값은 어떠한 데이터나 구성 정보를 저장하는 데 사용됩니다.
  3. 고가용성: etcd 클러스터는 여러 노드로 구성되며, 이를 통해 고가용성을 제공합니다. 노드 중 하나가 장애가 발생하더라도 시스템은 계속 작동할 수 있습니다.
  4. 분산 시스템 설정 관리: 많은 분산 시스템에서 etcd는 중요한 설정 정보를 저장하고, 변경 및 검색할 수 있는 공통 저장소로 사용됩니다. 예를 들어, 컨테이너 오케스트레이션 도구인 Kubernetes는 클러스터 구성 및 상태 정보를 etcd에 저장합니다.
  5. 원자성 트랜잭션: etcd는 원자성 트랜잭션을 지원하여 여러 개의 키-값 쌍을 동시에 업데이트하거나 롤백할 수 있습니다. 이는 데이터 일관성을 유지하고 데이터 변경 과정에서 문제를 방지하는 데 도움을 줍니다.
  6. 쿼럼 기반 결정: etcd 클러스터의 노드가 일관된 결정을 내리기 위해 쿼럼을 사용합니다. 쿼럼은 과반수를 의미하며, 클러스터 내의 과반수 이상의 노드가 동의해야 결정이 적용됩니다.
  7. API 및 CLI: etcd는 API와 커맨드 라인 인터페이스(CLI)를 제공하여 데이터 읽기 및 쓰기, 클러스터 관리, 백업 및 복구 등을 수행할 수 있습니다.
  8. 오픈 소스: etcd는 CNCF(클라우드 네이티브 컴퓨팅 재단)의 일부로 개발되고 유지되며, 오픈 소스로 공개되어 있습니다. 이는 커뮤니티에서 지속적인 개선과 개발을 지원하고 있음을 의미합니다.

 

ETCD 백업

(일반적인 경로)

- cacert : etc/kubernetes/pki/etcd/ca.crt

- cert : etc/kubernetes/pki/etcd/server.crt

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

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 snapshot restore <snapshotdb> \
--data-dir <data-dir-location>

 

ETCD POD 재배포

현재 실행중인 ETCD파드는 기존 데이터를 바라보고 있으므로 정적 Pod로 실행중인 ETCD의 yaml파일을 수정하여 재배포해야 합니다.

/etc/kubernetes/manifests/etcd.yaml

 volumes:
  ...
  - hostPath:
      path: /var/lib/etcd-restore (새 경로로 변경)
  ...

 

참조

https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster

'INFRA > Operation' 카테고리의 다른 글

OpenLdap 이란?  (1) 2023.10.26
그라파나 Variables 설정  (0) 2023.09.27
Istio  (0) 2023.08.04
그라파나 Alert 설정하기  (0) 2023.07.21
그라파나 대시보드 및 패널 설정  (0) 2023.06.23

댓글