티스토리 뷰

etcdKubernetes를 비롯한 분산 시스템에서 핵심적인 역할을 하는 분산 키-값 저장소입니다. 특히 Kubernetes의 모든 클러스터 상태 데이터를 저장하는 데 사용됩니다.

이름의 의미와 유래

  • "etcd" = "etc directory + distributed"
    • etc: 유닉스 시스템에서 설정 파일이 들어가는 디렉토리(/etc)를 의미
    • d: distributed(분산형)의 약자

즉, **etcd는 "분산 설정 저장소(distributed etc)"**라는 의미를 내포하고 있습니다. 유닉스의 /etc 디렉토리처럼, etcd는 분산 시스템의 설정과 상태 정보를 저장하는 역할을 하죠.


✅ 핵심 개념 요약

항목 설명

무엇인가요? 분산형 키-값(key-value) 저장소
어디에 쓰이나요? Kubernetes의 설정, 클러스터 상태, 서비스 정보, 노드 목록 등 저장
누가 만들었나요? CoreOS에서 개발 → 현재는 CNCF 프로젝트
어떤 특징이 있나요? 고가용성, 일관성 보장(Consistent), Raft consensus 알고리즘 기반

🧠 etcd의 역할 in Kubernetes

Kubernetes는 클러스터의 모든 정보를 etcd에 저장합니다. 예를 들어:

  • 노드 목록
  • Pod 상태
  • ConfigMap / Secrets
  • 서비스 디스커버리 정보
  • 클러스터 구성 설정

이 정보가 etcd에 저장되어야만, Kubernetes API 서버가 클러스터의 상태를 조회하고 관리할 수 있습니다.


🔁 어떻게 작동하나요?

  • etcd는 Raft 알고리즘을 사용해 여러 노드 간의 **합의(consensus)**를 이룹니다.
  • 하나의 리더 노드가 쓰기 연산을 처리하고, 나머지 팔로워 노드는 복제합니다.
  • 이 구조는 일관성을 보장하며, 장애 복구에도 강함.

📦 etcd 데이터 예시

/keyspace/nodes/node1 = { "name": "node1", "status": "Ready" }
/registry/pods/default/nginx-xyz = { "podName": "nginx", "status": "Running" }

⚠️ etcd 운영 시 주의할 점

  • 반드시 백업 전략을 세워야 함 (데이터 유실 시 클러스터 전체 장애 가능)
  • 디스크 I/O지연(latency) 민감함
  • 보안 필요: TLS 통신, 인증, 접근 제어

🔧 사용 도구

  • etcdctl : etcd 클러스터를 직접 관리하는 CLI 툴
  • kubectl get 명령으로 간접적으로 etcd 데이터 확인 가능 (K8s API 서버를 통해)

필요하다면 etcd 구조 다이어그램이나 etcdctl 명령어 예제도 보여드릴 수 있어요. 원하시나요?

'Skill > 기반기술' 카테고리의 다른 글

CI/CD : 지속적 통합/지속적 배포  (0) 2025.05.02
harbor - Registry  (0) 2025.05.02
왜 localhost 접속하는 ip 가 0:0:0:0:0:0:0:1 으로 보이나?  (0) 2025.04.05
web.xml 설정  (0) 2025.04.03
windows SMTP SERVER 설정  (0) 2025.03.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함