[Kubernetes] 쿠버네티스 아키텍처 (구성/설계)

zoey·2022년 12월 13일
0

Docker & Kubernetes

목록 보기
3/5
post-thumbnail


🟢 Master 상세 - etcd

"모든 데이터를 확실하게 관리"

  • 모든 상태와 데이터를 저장
  • 분산 시스템으로 구성하여 안전성을 높임 (고가용성)
  • 가볍고 빠르면서 정확하게 설계 (일관성)
  • Key(directory)-Value 형태로 데이터 저장
  • TTL(time to live), watch 같은 부가 기능 제공
  • 백업은 필수

🟢 Master 상세 - API server

"조회나 요청은 모두 나를 통해서"

  • 상태를 바꾸거나 조회
  • etcd와 유일하게 통신하는 모듈
  • REST API 형태로 제공
  • 권한을 체크하여 적절한 권한이 없을 경우 요청을 차단
  • 관리자 요청 뿐 아니라 다양한 내부 모듈과 통신
  • 수평으로 확장되도록 디자인

🟢 Master 상세 - Scheduler

"어떤 노드에 어떤 컨테이너를?"

  • 새로 생성된 Pod을 감지하고 실행할 노드를 선택
  • 노드의 현재 상태와 Pod의 요구사항을 체크
    - 노드에 라벨을 부여
    • ex) a-zone, b-zone 또는 gpu-enabled, ...

🟢 Master 상세 - Controller

"LOOP LOOP 돌고 돌고 무한반복"

  • 논리적으로 다양한 컨트롤러가 존재
    - 복제 컨트롤러
    • 노드 컨트롤러
    • 엔드포인트 컨트롤러 ...
  • 끊임 없이 상태를 체크하고 원하는 상태를 유지
  • 복잡성을 낮추기 위해 하나의 프로세스로 실행

🔵 Node 상세 - Kubelet

'컨테이너 관리 확실하게'

  • 각 노드에서 실행
  • Pod을 실행/중지하고 상태를 체크
  • CRL (Container Runtime Interface)
    - docker, Containerd, CRI-O ...

🔵 Node 상세 - Proxy

'내/외부 통신 설정하기'

  • 네트워크 프록시와 부하 분산 역할
  • 성능상의 이유로 별도의 프록시 프로그램 대신
    iptables 또는 IPVS를 사용 (설정만 관리)

0개의 댓글