Certified Kubernetes Administration - 79
2024-06-23
- Kubernetes
- Cloud
고가용성 설정의 etcd 강의 개요
-
etcd: 분산, 신뢰할 수 있는 키-값 저장소로, 단순하고 안전하며 빠름.
-
키-값 저장소: 전통적인 테이블 형식이 아닌, 개별 문서 형식으로 데이터 저장.
-
분산: 여러 서버에 데이터 분산 저장, 각 서버가 동일한 데이터 사본을 유지.
-
일관성 보장: 모든 인스턴스에서 동일한 데이터 보장.
-
분산 시스템에서의 etcd
-
리더 선출: 여러 인스턴스 중 하나가 리더로 선출되어 모든 쓰기 요청 처리.
-
리더: 쓰기 요청을 받아 다른 인스턴스에 데이터 복제.
-
팔로워: 쓰기 요청을 리더에게 전달.
-
-
합의 프로토콜: Raft 프로토콜을 사용해 리더 선출 및 데이터 일관성 유지.
-
랜덤 타이머: 가장 먼저 타이머가 종료된 노드가 리더 선출 요청.
-
리더 갱신: 리더가 일정 주기로 다른 노드에게 리더 상태 유지 알림.
-
재선출: 리더가 응답하지 않으면 새로운 리더 선출.
-
Quorum(쿼럼)
-
쿼럼: 클러스터가 정상적으로 작동하기 위해 필요한 최소 노드 수.
- 계산 방식: (전체 노드 수 / 2) + 1
- 예: 3노드 클러스터의 쿼럼은 2, 5노드 클러스터의 쿼럼은 3.
-
노드 손실 허용치: 클러스터가 정상 작동을 유지할 수 있는 최대 노드 손실 수.
- 예: 3노드 클러스터는 1노드 손실 허용, 5노드 클러스터는 2노드 손실 허용.
고가용성 클러스터 구성
-
리더 선출 및 데이터 복제: Raft 프로토콜을 통해 리더가 쓰기 요청을 처리하고, 다른 노드로 데이터 복제.
-
이중화: 최소 3개의 노드로 구성해 고가용성 보장.
-
최소 노드 수: 3 (이상적인 구성은 홀수, 예: 3, 5, 7)
-
이중화 방식: API 서버 앞에 로드 밸런서 배치해 트래픽 분산.
-
etcd 설치 및 구성
-
설치 과정: 최신 바이너리 다운로드, 디렉토리 구조 생성, 인증서 파일 복사.
-
etcd 구성 파일: 초기 클러스터 옵션을 통해 피어 정보 전달.
-
etcd Cuddle 유틸리티: 데이터 저장 및 검색.
-
API 버전 설정:
export ETCDCTL_API=3
-
데이터 저장:
etcdctl put <key> <value>
-
데이터 검색:
etcdctl get <key>
-
클러스터 디자인
-
고가용성 설정: 최소 3개의 마스터 노드 필요.
-
노드 수 결정: 홀수의 노드 권장 (예: 3, 5, 7)
-
토폴로지 선택: 스택형 토폴로지 사용 (etcd 서버를 마스터 노드에 포함)
최종 디자인
-
노드 구성: 최소 3개의 노드 (마스터 노드 3개 또는 더 많은 노드로 구성)
-
제어 플레인 및 etcd 중복성 보장
Certified ...
Certified ...