2021년 8월 2일 월요일

[ Kubernetes ] 아키텍처


[ 쿠버네티스 아키텍쳐 ] 


1. 컨트롤 플레인

컨트롤 플레인은 클러스터의 두뇌 역할을 하며 

사용자의 API요청, CLI, UI서비스를 제공한다.





















좀 더 자세히 살펴보면
아래 그림의 실선의 쿠버네티스 마스터 영역이 컨트롤 플레인이다.
  • etcd : 쿠버네티스 관련 메타정보를 저장하는 데이터베이스
  • kube-apiserver : 컨트롤 플레인의 프론트엔드 서버로 API요청을 처리
  • kube-scheduler : 생선된 파드를 실행할 노드를 결정
  • kube-controller-manager : 디플로이먼트와 같은 리소스 컨트롤러를 관리
  • cloud-controller-manager : 클라우드 기반 클러스터의 로드밸런서나 디스트볼륨 자원을 관리
























2. 노드 컴포넌트 

  • kubelet : 노드에 예약된 워크로드를 실행하기 위해 컨테이너 런타임관리, 모니터링
  • kube-proxy : 서로 다른 노드에 있는 파드간 통신, 네트워크 트래픽을 라우팅



3. 고가용성

  • etcd 데이터베이스는 여러 노드에 걸쳐 복제되며, 절반이상이 사용가능하면 복구가능
  • 컨트롤 플레인 장애시 App이 다운되진 않지만, 새로운 컨터에너 또는 리소스를 변경할 수 없으므로 가장 빠르게 복구해야 함
  • 고가용성을 위해 상용시 최소 3개이상의 클러스터가 필요
  • 워커노드장애시 쿠버네티스가 해당 노드의 파드들을 다른 노드로 재조정


댓글 없음:

댓글 쓰기