쿠버네티스 클러스터 아키텍쳐는 다음과 같습니다.
이 아키텍쳐에서 ETCD란 Cluster의 모든 상태 정보를 저장하고 있는 저장소입니다.
다시 말해 'kubectl get'과 같은 명령어를 통해 얻어오는 모든 정보들은 ETCD를 통해서 얻어오는 것 입니다.
EX) nodes, pods, configs, secrets, accounts 등등
ETCD는 key와 value 형태로 데이터를 저장합니다. key는 중복되지 않는 고유한 값이어야 하며, key를 알고 있다면 key를 통해 value를 얻을 수 있습니다.
기존 RDBMS와 같은 데이터베이스 서비스들을 대체할 수는 없지만, 빠른 속도로 읽기, 쓰기가 가능하기 때문에 설정 데이터와 같은 작은 크기의 데이터를 반복적으로 저장 및 검색하는 용도로 쓰기에는 매우 적합합니다.
ETCD는 쿠버네티스 클러스터의 모든 정보를 저장하고 있기 때문에 만약 cluster에 문제가 생겼을 경우 ETCD에 데이터를 잘 백업 해두었다면 cluster를 복구하는 것이 가능합니다.
하지만 반대로 다른 모든 컴포넌트들이 멀쩡하더라도 ETCD의 데이터가 유실되어 버리면 컨테이너 뿐 아니라 cluster가 사용하는 모든 리소스들을 활용할 수 없게 됩니다.
ETCD 데이터의 유실을 방지하기 위해 ETCD를 분산하여 구축하면 고가용성(HA)를 확보할 수 있습니다.