서론
이 장에서는 Kubernetes에서 etcd가 수행하는 역할에 대해 알아본다.

etcd
- Kubernetes 클러스터의 모든 상태 정보(노드 · 파드 · Config · Secret · RBAC 등)를 저장하는 키-값 데이터베이스이다.
kubectl get명령어로 확인하는 모든 정보는 etcd 서버에서 가져온다.- 노드 또는 파드를 추가하거나 ReplicaSet을 배포하는 등 클러스터에 일어나는 모든 변경 사항은 etcd 서버에 업데이트된다.
- 변경 사항이 etcd 서버에 반영되어야만 정식으로 변경이 완료된 것으로 간주되기 때문이다.
etcd 구축방식
직접 설치하는 경우
- advertised client URL 옵션 설정
- 이 주소(advertised client URL)는 etcd가 listen 하고 있는(클라이언트 요청을 받는)주소이다.
- 기본적으로 서버의 IP 주소와 포트 2379를 사용하며, 이는 etcd의 기본 포트이다.
- Kube API Server가 etcd에 접근할 때 이 URL을 설정해주어야 한다.
- kubeadm으로 클러스터를 구성한 경우, etcd는 자동으로 kube-system 네임스페이스의 파드로 배포된다.
- 이 파드 안에서 etcdctl 명령어를 사용해 etcd 데이터베이스를 탐색할 수 있다.

- 이렇게 사용자가 etcd 바이너리를 직접 다운로드, 설치해야하며
--advertise-client-urls=https://<IP>:2379등 수많은 TLS·클러스터 옵션을 수동 설정해야 한다.
- kubeadm 설치
-
kubeadm init시 etcd를 kube-system 네임스페이스의 etcd파드에 들어가 터미널에서etcdctl로 데이터 탐색 가능하다.

-
etcd 저장 데이터 구조
- 최상위 프리픽스
/registry아래에nodes/,pods/,replicasets/… 식으로 리소스별로 디렉터리에 계층적으로 저장된다.
Comment