- 쿠버네티스에서 필요한 모든 데이터를 키-값 형태로 저장하는 데이터베이스
- etcd가 다운되면 모든 컴포넌트가 미아가 되기 때문에 가용성이 매우 중요
- 클러스터링하여 분산 실행하는 RSM (Replicated State Machine) 구조
- 기본포트 : 2379
- kube-apiserver만 유일하게 etcd에게 요청이 가능함
ETCDctl
- etcd를 다루기 위한 유틸리티
- api version2와 3이 있음 (설정이 없으면 기본적으로 v2를 사용)
- ETCDCTL이 ETCD API Server에 인증할 수 있도록 인증서 파일 경로 지정 필요
# etcd pod 상세 확인
kubectl describe pod etcd-minikube -n kube-system
# ETCDctl로 클러스터 정보 조회
# etcd pod로 shell 실행
kubectl exec -it \\
-n kube-system etcd-minikube \\
-- sh -c 'ETCDCTL_CACERT=/var/lib/minikube/certs/etcd/ca.crt \\
ETCDCTL_CERT=/var/lib/minikube/certs/etcd/peer.crt \\
ETCDCTL_KEY=/var/lib/minikube/certs/etcd/peer.key \\
ETCDCTL_API=3 \\
etcdctl \\
get \\
--keys-only \\
--prefix=true \\
"/registry/pods/"'
kubectl -n kube-system exec -it etcd-minikube -- /bin/sh
# member 조회
ETCDCTL_API=3 etcdctl \\
--cacert=/var/lib/minikube/certs/etcd/ca.crt \\
--cert=/var/lib/minikube/certs/etcd/peer.crt \\
--key=/var/lib/minikube/certs/etcd/peer.key \\
put Name wlstmd
ETCDCTL_API=3 etcdctl \\
--cacert=/var/lib/minikube/certs/etcd/ca.crt \\
--cert=/var/lib/minikube/certs/etcd/peer.crt \\
--key=/var/lib/minikube/certs/etcd/peer.key \\
get Name
# 모든 값 출력
ETCDCTL_API=3 etcdctl \\
--cacert=/var/lib/minikube/certs/etcd/ca.crt \\
--cert=/var/lib/minikube/certs/etcd/peer.crt \\
--key=/var/lib/minikube/certs/etcd/peer.key \\
get / --prefix --keys-only