1. ETCD란 무엇인가
ETCD는 분산 Key-Value 저장소로,
Kubernetes 클러스터의 모든 상태 정보를 저장하는 핵심 컴포넌트다.
쿠버네티스에서 리소스의 현재 상태, 설정, 메타데이터에 대한 기준 정보는 모두 ETCD에 저장된다.
즉, 클러스터의 “진짜 상태”는 ETCD에 기록되어 있다.


2. ETCD의 주요 특징
- Key – Value 구조
- 분산 시스템
- 강한 일관성(Strong Consistency)
- Raft 합의 알고리즘 사용
ETCD는 단순 설정 저장소가 아니라,
분산 환경에서도 데이터의 정확성과 신뢰성을 보장하도록 설계된 저장소다.
3. ETCD에 저장되는 정보
ETCD에는 다음과 같은 Kubernetes 리소스 정보가 저장된다.
- Node 정보
- Pod 상태
- Deployment, ReplicaSet
- Service
- ConfigMap
- Secret
- Namespace
- RBAC 설정
클러스터 상태를 재구성할 수 있는 모든 정보가 ETCD에 존재한다.
4. ETCD와 Kubernetes 구성 요소 관계
ETCD는 Control Plane의 데이터베이스 역할을 한다.
다만, 모든 컴포넌트가 ETCD에 직접 접근하는 것은 아니다.
접근 규칙은 다음과 같다.
- kube-scheduler → ETCD 직접 접근 불가
- kube-controller-manager → ETCD 직접 접근 불가
- kubelet → ETCD 직접 접근 불가
- kube-apiserver → ETCD 접근 가능
ETCD는 오직 kube-apiserver를 통해서만 읽기/쓰기가 이루어진다.
Kubernetes 상태 저장 흐름
- 사용자가 kubectl apply 실행
- 요청이 kube-apiserver로 전달
- 인증, 인가, Admission Controller 처리
- 최종 상태가 ETCD에 저장
- 다른 컴포넌트는 API Server를 통해 상태 확인
ETCD는 사용자나 컴포넌트가 직접 다루는 저장소가 아니다.
5. Kubernetes에서 ETCD 실행 방식
kubeadm 환경
kubeadm으로 구성된 클러스터에서는 ETCD가 Static Pod로 실행된다.
경로:/etc/kubernetes/manifests/etcd.yaml
이 파일을 수정하면 kubelet이 변경을 감지하고 ETCD를 자동으로 재시작한다.
고가용성(HA) 구성
- ETCD Cluster 형태로 구성
- 홀수 개 노드(3, 5) 권장
- 과반수(quorum) 기반 합의
일부 노드 장애 상황에서도 데이터 일관성을 유지할 수 있다.
6. ETCDCTL 개요
ETCD를 직접 조회하거나 백업 및 복구할 때 사용하는 CLI 도구가 etcdctl이다.
ETCD API 버전
- v2 (구버전)
- v3 (현재 기본, CKA 기준)
v3 사용 시 환경 변수 설정이 필요하다.
7. 자주 사용하는 ETCDCTL 명령어
ETCD 상태 확인
특정 Key 조회
전체 Key 목록 조회
8. ETCD 백업과 복구 (CKA 핵심)
Snapshot 백업
Snapshot 복구
CKA 시험에서는 ETCD 백업 및 복구 절차가 높은 확률로 출제된다.
명령어뿐 아니라 전체 흐름 이해가 중요하다.
9. ETCD와 Raft 합의 알고리즘
- Leader / Follower 구조
- 쓰기 요청은 Leader에서 처리
- 과반수 노드 동의 시 커밋
- 일부 노드 장애 시에도 클러스터 유지
Raft는 ETCD가 강한 일관성을 유지할 수 있는 핵심 메커니즘이다.
마무리
ETCD는 Kubernetes 내부 동작을 이해하는 데 있어 가장 중요한 컴포넌트 중 하나다.
클러스터 상태 관리의 중심이며, CKA 시험에서도 반복적으로 출제되는 영역이다.
'소소한 IT이야기 > CKA' 카테고리의 다른 글
| [CKA] Helm 정리01 – Chart, Release, Revision 개념과 install / upgrade / rollback (0) | 2025.12.30 |
|---|---|
| Docker vs containerd 정리 (0) | 2025.12.28 |
| Cluster Architecture 정리 (0) | 2025.12.27 |