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 ...