kubernetes

쿠버네티스 아키텍처 - 클러스터

PSAwesome 2020. 6. 15. 13:48
반응형

안녕하세요.

해당 글은 클러스터에 관한 글입니다.

 

클러스터란

쿠버네티스 아키텍처는 여러 컨테이너를 관리하기 위해 자기 맡은 역할을 수행하는 여러 대 서버가 하나의 클러스터로 연결되어 있습니다.

 

컨트롤 플레인

어떠한 명령을 프로그램에 전달할 때 API, CLI, 마우스 클릭이 가능한 UI 같은 기능을 통해 수행하도록 합니다.

이러한 기능을 담당하는 것이 컨트롤 플레인이라고 설명할 수 있습니다.

* 정의 : 컨테이너의 라이프 사이클을 정의, 배포, 관리하기 위한 API와
           인터페이스들을 노출하는 컨테이너 오케스트레이션 레이어

 

출처: https://kubernetes.io/ko/docs/concepts/overview/components/

 

* 컨트롤 플레인은 마스터 노드에서 실행되며, 품고 있는 컴포넌트를 통해 각 기능은 아래와 같습니다.

 

- kube-apiserver

  - 명령어 API를 처리

 

- etcd

  - 노드와 클러스터에 존재하는 리소스나 쿠버네티스와 관련된 모든 정보를 저장하는 데이터베이스, (저장소)

  - 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 key-value 저장소

 

 

- kube-scheduler

  - 새로 생성된 파드를 실행할 노드를 결정

  - (work machine) 노드가 배정되지 않은 새로 생성된 (실행 중인 컨테이너 집합)파드를 감지하고 실행할 노드를 선택하는 컨트롤 플레인 컴포넌트

 

- kube-controller-manager

  • 리소스 컨트롤러를 관리. 
  • 현재 상태를 원하는 상태로 이행시키는 컨트롤 루프로, 컨트롤러를 구동하는 마스터 상의 컨트롤러 
  • 리소스 컨트롤러란?
    • 노드 컨트롤러: 노드가 다운되었을 때 통지와 대응에 관한 책임을 가진다.
    • 레플리케이션 컨트롤러: 시스템의 모든 레플리케이션 컨트롤러 오브젝트에 대해 알맞은 수의 파드들을 유지시켜 주는 책임을 가진다.
    • 엔드포인트 컨트롤러: 엔드포인트 오브젝트를 채운다. (서비스와 파드를 연결)
    • 서비스 account & token 컨트롤러: 새로운 네임스페이스에 대한 기본 계정과 API 접근 토큰을 생성한다.

 

- cloud-controller-manager

  • 클라우드 제공자 전용 컨트롤러만 실행한다.
  • 제공 사업자의 의존성을 가질 수 있는 컨트롤러
    • 노드 컨트롤러: 노드가 응답을 멈춘 후 클라우드 상에서 삭제되었는지 판별하기 위해 클라우드 제공 사업자에게 확인하는 것
    • 라우트 컨트롤러: 기본 클라우드 인프라에 경로를 구성하는 것
    • 서비스 컨트롤러: 클라우드 제공 사업자 로드밸런서생성, 업데이트 그리고 삭제하는 것

 

 

책에 작성된 내용만으로 도대체 무슨 말인지 알기 어려워 쿠버네티스 공식 문서를 참조하여 개념을 추가하였습니다.

 

감사합니다.

 

 

 

 

반응형