IT 강의/도커 쿠버

[CKA 강의 요약] ETCD

rnany 2024. 3. 7. 13:46

Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests  강의의 13. ETCD For Beginners 챕터를 공부한 내용으로 강의 내용과 다를 수 있습니다. 정확한 내용은 강의를 들으시는 것을 추천드립니다.


1. ETCD

ETCD는 키-값 저장 데이터 베이스이다.

행-열 구조

행-열 구조(관계형 데이터베이스)는 표의 노란 음영처리 된 부분과 같이 행에 해당하는 값이 없어도 신규 열이 추가 되어야한다.

즉, 한 개의 신규 데이터를 추가하려면 전체 테이블이 영향을 받는다.

 

키-값 구조

키-값 저장소는 각각 개인의 문서를 가지고 있다.

위 그림의 노란 음영 부분과 같이 한개의 문서에 키와 값이 추가되며 전체 테이블은 영향 받지 않는다.

이런 방식은 JSON이나 YAML 등이 있다.

 

ETCD는 기본적으로 2379 port를 사용한다.

기본적으로 ETCD 제어 클라이언트(ETCD용 CLI)를 사용해 키-값 쌍을 저장 및 검색한다.

 

쿠버네티스에서 ETCD는 클러스터에 대한 정보를 저장한다

  • notes, pods, convicts, secrets, accounts, roles, role bindings
  • kube control get 명령어 실행시 etcd에서 가져온것

 


 

2. ETCD 설치하기

ETCD는 클러스터를 설정한는 방법에 따라 다르게 배포된다.

 

2-1) 처음부터 배포

Master node에서 ETCD 바이너리를 직접 다운로드 및 설정하여 서비스를 실행한다.

서비스에 많은 옵션이 있다.

(EX: KUBE API에서 도달할 url(etcd가 수신 받을 ip, port)

 

2-2) Qadium 도구 사용 배포

Kuebeadm을 사용 클러스터 설정할 경우 ETCD 서버를 kube-system 네임스페이스의 pod로 배포한다.

Pod 내의 ETCD 제어 유틸리티를 사용한다.

 

# kubectl exec etcd-master -n kube-system etcdctl get / --prefix -keys-only

명령어 사용해 쿠버네티스에 저장된 모든 키를 나열 할 수 있다.

 

쿠버네티스는 특정 디렉터리 구조에 데이터를 저장한다.

Registory가 root 디렉터리이고 그 밑에 다양한 구성이 있다.(미니언, 노드, 포드…)

HA 구성시 master node가 여러개이기에 여러 ETCD 인스턴스가 생긴다.

이에 ETCD 서비스 구성에서 올바른 parameter를 설정하면 etcd 인스턴스가 서로 알게 된다.

—initial-cluster 옵션에서 ETCD 서비스의 다른 인스턴스를 지정하면 된다.