what is etcd?
- 분산되고 신뢰할 수 있는 키-밸류 스토어
- etcd에는 클러스터에 관한 정보를 저장
(nodes,pods,configs,secrets,accounts,roles,bindings, others)
- kubectl을 실행할 때 얻게되는 모든 정보는 etcd 에서 온다
- etcd를 클러스터로 구성할 수도 있음
what is a key-value store?
- 전통적인 관계형 데이터베이스RDB가 아니라, 단순하게 키와 밸류 형태로 데이터 저장
- 어떤 형식이나 구조이든지 가능
- 한 파일의 변화가 다른 파일에 영향을 주지 않음
how to get started quickly
- 디폴트 포트 2379
- etcdctl 명령어로 관리
etcd versions
- v0.1 - 2023.08
- v0.5 - 2014.12
- v2.0 - 2015.02
- 많이 사용되었고
- v3.1 - 2017.01
- 이 때 etcdctl에 많은 변화가 생김
- cncf incubation - 2018.11
etcdctl versions
v2.0 → v3.1 에서 많은 변화가 생김
그래서 etcdctl 사용하기 전에 먼저 버전 확인 해야함
./etcdctl --version
# 2가지 유형 버전
# 지금 이 상태에서는 v2.0 버전의 etcdctl을 사용한다는 의미
etcdctl version: 3.3.11
API version: 2
v3로 변경하고자 할 경우 아래처럼 설정한다
# 설정 방법 1
ETCDCTL_API=3 ./etcdctl version
# 설정 방법 2
export ETCDCTL_API=3
./etcdctl version
# v3.3 버전의 etcdctl 사용한다는 의미
etcdctl version: 3.3.11
API version: 3.3
인증서
# 인증서 파일 경로
--cacert /etc/kubernetes/pki/etcd/ca.crt
--cert /etc/kubernetes/pki/etcd/server.crt
--key /etc/kubernetes/pki/etcd/server.key
how to operate etcd - etcdctl v3
etcdctl을 정상적으로 작동시키기 위해
# 예시
kubectl exec etcd-master -n kube-system -- sh -c "ETCDCTL_API=3 etcdctl get / --prefix --keys-only --limit=10 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key"
저장
./etcdctl put key1 value1
조회
./etcdctl get key1