Kubernetes

[Kubernetes] ETCD in Kubernetes

thdwldud 2026. 5. 25. 22:02
728x90
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator(CKA) with Practice Tests 강의를 공부한 내용입니다.

 

Certified Kubernetes Administrator (CKA) with Practice Tests

<p><strong>CKA Certification Course – Certified Kubernetes Administrator</strong></p><p>Kubernetes is one of the highest trending technology in Cloud Computing as of today. Kubernetes had the fastest growth in job searches, over 173% from a year before,

www.udemy.com

 

etcd는 Kubernetes 클러스터의 구성 데이터, 상태 정보, 메타데이터를 저장하는 분산 Key-Value 저장소

 

다음과 같은 모든 객체가 etcd에 저장:

  • Node
  • Pod
  • 설정(Config)
  • Secret
  • 계정(Account)
  • Role / RoleBinding

예를 들어 kubectl get 명령을 실행하면, 해당 데이터는 etcd에서 조회됨

 

etcd 역할 핵심

클러스터에서 발생하는 모든 변경 사항은 먼저 etcd에 기록됨

예시:

  • 노드 추가
  • Pod 생성
  • ReplicaSet 설정

→ etcd에 반영되어야만 해당 작업이 “완료”된 것으로 간주됨

 

etcd 통신

  • 기본 포트: 2379
  • API Server ↔ etcd 통신 시 -advertise-client-urls 설정 중요

→ 잘못 설정하면 API Server가 etcd와 통신 불가

 

배포 방식

etcd는 두 가지 방식으로 배포 가능

  1. 수동 설치 (from scratch)
  2. kubeadm 사용

 

수동 설치 방식 (scratch)

직접 etcd를 구성하는 경우:

  1. 바이너리 다운로드
  2. 설치
  3. 서비스로 등록
  4. TLS 인증서 설정

예시:

ExecStart=/usr/local/bin/etcd \
--name${ETCD_NAME} \
--cert-file=/etc/etcd/kubernetes.pem \
--key-file=/etc/etcd/kubernetes-key.pem \
--peer-cert-file=/etc/etcd/kubernetes.pem \
--peer-key-file=/etc/etcd/kubernetes-key.pem \
--trusted-ca-file=/etc/etcd/ca.pem \
--peer-trusted-ca-file=/etc/etcd/ca.pem \
--listen-client-urls https://${INTERNAL_IP}:2379 \
--advertise-client-urls https://${INTERNAL_IP}:2379 \
--data-dir=/var/lib/etcd

 

특징 : 

  • 설정 자유도 높음
  • TLS, 보안 세밀하게 제어 가능
  • 실무/프로덕션에서 많이 사용

 

고가용성 구성

운영 환경에서는 etcd를 반드시 HA로 구성해야 함

방법:

  • 여러 Master Node 구성
  • 각 Node에 etcd 인스턴스 배치
  • 서로 peer 정보 공유

핵심 옵션:

--initial-clustercontroller-0=https://${CONTROLLER0_IP}:2380,controller-1=https://${CONTROLLER1_IP}:2380

→ 각 etcd 노드는 서로를 알아야 클러스터 형성 가능

 

HA 핵심 포인트

  • etcd는 클러스터 형태로 동작
  • 일부 노드 장애 발생 시에도 정상 동작 유지
  • Raft 알고리즘 기반 합의

 

kubeadm으로 배포

kubeadm을 사용하면 etcd 설정이 자동으로 처리됨

→ etcd는 Pod 형태로 실행됨

확인 명령:

kubectlget pods-n kube-system

 

예시 :

kube-system   etcd-master   1/1 Running

 

etcd 내부 데이터 확인

etcd에 저장된 키 확인:

kubectl exec etcd-master-n kube-system-- etcdctlget /--prefix--keys-only

 

출력 예시 :

/registry/nodes
/registry/pods
/registry/deployments
/registry/replicasets

 

etcd 내부 구조 :

/registry 하위에 모든 Kubernetes 리소스 저장

728x90
반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Kube Controller Manager  (0) 2026.06.08
[Kubernetes] Kube-API Server  (0) 2026.06.01
[Kubernetes] ETCD For Beginners  (0) 2026.05.18
[Kubernetes] Docker vs ContainerD  (0) 2026.05.09
[Kubernetes] Cluster Architecture  (0) 2026.05.03