자격증/CKA

[CKA] Udemy 13, 14 ETCD For Beginners (in Kubernetes)

14ben 2024. 4. 15. 21:14
728x90

13. ETCD

  • ETCD는 분산되고 신뢰할 수 있으며 키-값 형식의 Key-Value Store
  • 간단하고 안전하며 빠른 데이터 저장 및 검색이 가능

 

Key-Value Store의 개념

  • 전통적인 데이터베이스와는 다르게 문서나 페이지 형태로 정보를 저장
  • 각 개별 정보는 문서 형태로 저장되며, 추가 정보를 저장할 때 다른 문서에 영향을 주지 않는다.

 

 

ETCD 설치 및 시작

  • ETCD 바이너리를 다운로드하고 추출하여 실행
  • 실행하면 포트 2379에서 동작하는 서비스가 시작
  • ETCD와 함께 제공되는 기본 클라이언트는 etcdctl

 

ETCD CTL을 사용한 기본 작업

  • etcdctl 을 사용하여 키-값 쌍을 저장하고 검색할 수 있다.
  • etcdctl set 명령어를 사용하여 키-값 쌍을 저장
  • etcdctl get 명령어를 사용하여 저장된 데이터를 검색

 

ETCD 의 역사

  • ETCD 의 첫 번째 버전인 v0은 2013년 8월에 공식적으로 안정 버전으로 출시
  • v2는 2015년 2월에 출시되었으며, RAFT 합의 알고리즘이 개선됨
  • v3는 2017년 1월에 출시되었으며, 최적화와 성능 향상이 이뤄짐
  • 2018년 11월에 ETCD 프로젝트는 CNCF에서 배양되었다.

 

ETCDCTL 버전 관리

  • etcdctl은 v2와 v3의 두 가지 버전이 있으며, API 버전에 따라 작동
  • 현재 설정된 etcdctl 버전은 etcdctl version 명령어로 확인할 수 있다.
  • 환경 변수를 사용하여 etcdctl 의 API 버전을 변경할 수 있다.

 

ETCDCTL 기본 작업

  • API v3를 사용하는 경우, ETCDCTL 명령어는 put, get과 같은 명령어를 사용하여 작업
  • 값을 설정하는 명령어는 . /etcdctl put이며, 값을 가져오는 명령어는 . /etcdctl get
  • API v3에 대한 명령어 목록은 etcdctl을 실행하여 확인할 수 있다.

 


 

14. ETCD in Kubernetes

 

 

Kubernetes에서 ETCD의 역할

 

데이터 저장 및 관리

  • ETCD는 클러스터에 관한 정보를 저장하는 데이터 저장소
  • 저장되는 정보에는 노드, 포드, 서비스, 비밀 계정, 역할 등이 포함

클러스터 변경 사항 관리

  • Kubernetes 클러스터에서 변경 사항이 발생할 때마다 ETCD 에 업데이트
  • 예를 들어, 노드 추가, 포드 배포, 복제본 세트의 업데이트 등의 경우 ETCD 가 업데이트 됨
  • 클러스터 설정에 따라 다양한 방식으로 배포

클러스터 배포 방법

  • Kubernetes 배포에는 두 가지 유형이 있다.
  • 처음부터 배포하기와 kubeadm도구를 사용하는 방법
  • 테스트 환경에서는 주로 kubeadm 도구를 사용하여 배포 됨
  • 클러스터를 처음부터 설정할 때는 직접 바이너리를 다운로드하고 설치하여 구성

클러스터 설정과 ETCD

  • 클러스터 설정에 따라 ETCD 가 중요한 역할을 함
  • 인증서와 관련된 작업은 클러스터 설정 과정에서 중요한 부분
  • 클러스터의 고가용성을 설정할 때는 ETCD 서비스의 URL이 중요한 역할을 함

ETCD 데이터베이스 탐색

  • 클러스터에서 저장된 모든 키를 탐색하려면 ETCD 데이터베이스를 탐색해야 함
  • 특정 디렉터리 구조에 데이터가 저장되어 있으며, 노드, 포드, 복제본 세트, 배포 등이 저장

고가용성 환경에서의 ETCD

  • 고가용성 환경에서는 여러 마스터 노드와 ETCD 인스턴스가 분산되어 작동
  • ETCD  인스턴스 간에 서로 통신할 수 있도록 올바른 구성이 필요
  • 초기 클러스터 설정에서는 ETCD 서비스의 다양한 인스턴스를 올바르게 설정

728x90

'자격증 > CKA' 카테고리의 다른 글

[CKA] Udemy 18. kube-scheduler  (0) 2024.06.22
[CKA] Udemy 17. Kube Controller Manager  (0) 2024.04.18
[CKA] Udemy 16. KubeAPI  (0) 2024.04.15
[CKA] Udemy 12. Docker vs ContainerD 정리  (0) 2024.04.13
[CKA] Udemy 11. Cluster Architecture 정리  (0) 2024.04.13