이 글은 <Certificated Kubernetes Administrator (CKA) with Practice Test, Mumshad Mannambeth, Kode Kloud Training> 섹션 2. Core concepts를 참고하여 작성하였습니다.
[CKA with Practice Tests] Section 2. Core concepts - (2) ETCD
What is ETCD
분산 시스템을 계속 실행하는 데 필요한 중요한 정보를 보관하고 관리하는 데 사용되는 분산 오픈소스 key-value 저장소입니다. 단순하고, 안전하고, 빠르죠. 더구나 가장 주목할 만한 점은 etcd가 선호하는 컨테이너 오케스트레이션 플랫폼인 Kubernetes를 위한 구성 데이터, 상태 데이터, 메타데이터를 관리한다는 점입니다.
How to install
# 바이너리 다운로드
curl -L https://github.com/etcd-io/etcd/releases/download/v3.3.11/etcd-v3.3.11-linux-amd64.tar.gz
# 압축 해제
tar xzvf etcd-v3.3.11-linux-amd64.tar.gz
# ETCD 실행
./etcd
# ETCD 명령어 예시
./etcdctl set key1 value1
ETCD in Kubernetes
쿠버네티스는 ETCD 스토리지를 활용하여, Nodes, PODS, Configs, Secrets, Accounts, Roles, Bindings 등의 정보를 저장합니다. 이 곳에 저장된 정보는 kubectl get 커맨드를 통해서 조회할 수 있어요.
# 바이너리 파일로 설치
wget -q --https-only "https://github.com/etcd-io/etcd/releases/download/v3.3.11/etcd-v3.3.11-linux-amd64.tar.gz"
# 만약 kubeadm을 사용하여 클러스터를 설정했다면, kubeadm이 kube-system 네임스페이스에 etcd 서버를 하나의 Pod로 배포해줄 것입니다.
# 아래 명령어로 배포된 etcd 를 확인할 수 있습니다
kubectl get pods -n kube-system
# ETCD에서 보관하고 있는 키 목록 확인하기
kubectl exec etcd-master -n kube-system etcdctl get / --prefix -key