ETCD란?

2022. 2. 27. 23:23Kubernetes

 

쿠버네티스의 마스터노드에는 Kube-Api-Server, Scheduler와 같은 요소들 외에 ETCD라는 이름만 들었을 때는 어떤 역할인지 전혀 예측조차 가지 않는 부분이 있다. 포스팅 할 내용이 그렇게 길지는 않지만 ETCD에 대해서 알고 넘어가야 하기 때문에 정리를 간단하게나마 해보고자 한다.

 

ETCD는 결론적으로 말하자면 데이터베이스이다. Key-Value 형태로 이루어져 있는데 마치 Redis의 형태와 비슷하다고 생각된다. ETCD는 쿠버네티스에서 Node, Pod, Config, Secret, Accounts, Role, Binding, 그리고 이 외의 것들을 모두 저장하고 있다. 

 

 

 

쿠버네티스를 사용하다보면 kubectl get [object-type]을 아주많이 사용하게 되는데 이 명령어를 사용했을 때 나오는 녀석들은 ETCD에 저장되고 있다. 

 

ETCD를 쿠버네티스에 설치하는 방법은 두가지가 있는데 첫번째는 binary 파일을 받아서 마스터노드에 설치하고 추후에 kube-api-server의 설정값에 ETCD의 주소:포트를 설정해주는 것이다.

아래 사진을 보면 --advertise-client-urls라는 값이 있는데 저 값이 kube-api-server에서 바라볼 endpoint이다.

 

 

두번째 방법은 kubeadm을 사용해서 쿠버네티스를 설치하는 방법인데 Kubeadm을 설치하면 자동으로 ETCD가 담긴 POD을 생성해준다. 이 경우에는 자동으로 kube-api-server와 연결해주기 때문에 추가적인 세팅을 할 것은 없는 것으로 알고 있다. 

 

 

 

그리고 만약 HA를 위해서 마스터 노드를 여러개로 둔다면 아래 그림의 --initial-cluster에 각각 마스터 노드들의 IP값을 빠짐 없이 잘 입력해야한다. 그렇지 않으면 마스터 노드들이 동기화가 되지 않아서 문제가 일어날 수 있다. 

 

'Kubernetes' 카테고리의 다른 글

Persitent Volume, Persistent Volume Claim, Storage Class  (0) 2022.03.26
RBAC 설정하는 방법  (0) 2022.03.25
Kubernetes Config란?  (0) 2022.03.24
Kube-api-server란?  (0) 2022.02.27
Kubernetes Namespace란?  (0) 2022.02.22