Learning
토픽 27 / 107·컨테이너 오케스트레이션

etcd

etcd

Kubernetes Control Plane의 핵심 분산 Key-Value 저장소로, Raft 합의 알고리즘을 사용하여 클러스터의 모든 상태 정보(Pod/Service/ConfigMap 등)를 안정적으로 저장하고 일관성을 보장하는 CNCF 졸업 프로젝트

특징: 분산 Key-Value Store, Raft 합의 알고리즘(리더 선출/로그 복제), 강한 일관성(Linearizable), Watch API(변경 실시간 감지), MVCC(Multi-Version Concurrency Control), gRPC 통신

Raft 합의: 리더 선출(1개 Leader + N Follower), 로그 복제(Leader→Follower), 과반수 합의(3노드 중 2, 5노드 중 3), 장애 허용(N/2-1 노드 장애 허용)

클러스터 상태 저장: Pod/Deployment/Service/ConfigMap/Secret 등 모든 K8s 오브젝트, API Server만 etcd에 직접 접근(다른 컴포넌트는 API Server 경유)

운영 모범사례: 홀수 노드 구성(3 또는 5), 전용 SSD 디스크(I/O 성능), 정기 백업(etcdctl snapshot save), 복원 절차 테스트(etcdctl snapshot restore), TLS 암호화 통신, 쿼터 설정(DB 크기 제한 기본 2GB)

비교: etcd(Raft/강한일관성/K8s 표준/gRPC) vs ZooKeeper(ZAB/강한일관성/Kafka·Hadoop/Java) vs Consul(Raft/서비스디스커버리 통합/HashiCorp)

연관: Kubernetes, Raft, 분산 시스템, 고가용성, Control Plane