kubernetes

쿠버네티스의 클러스터 - 개념정리

PSAwesome 2020. 6. 6. 21:38
반응형

안녕하세요.

이번 글은 쿠버네티스의 클러스터 아키텍처 개념 정리입니다.

 

## 들어가기 전

쿠버네티스란 컨테이너 관리 도구입니다.

컨테이너를 생성하고 설정을 변경하는 것(예를 들면 port-forward), 장애 시에도 고가용성을 보장하는 구조라는 것들을 생각해볼 수 있습니다.

컨테이너를 감싼 proxy를 떠올리며

쿠버네티스의 마스터 노드에서 명령어를 받아 etcd에 내용들을 저장하고 cloud 업체(GCP, AWS)와 통신하는 cloud-controller-manager와 kube-apiserver를 통해 kubeletkube-proxy를 제어하는 그림을 상상해보셨으면 합니다.

 

## 쿠버네티스의 클러스터

여러 대의 서버가 하나의 클러스터로 연결된 구조

 

### 컨트롤 플레인

- 컨트롤 플레인이라 불리우는 모음은 **마스터 노드**에서 실행됩니다.

 

 

컨트롤 플레인을 구성하는 컴포넌트

  • kube-apiserver
    • 명령어 API를 처리
  • etcd
    • 저장소
    • => 노드와 클러스터에 리소스와 같은 정보를 저장
  • kube-scheduler
    • 새로 생성된 파드를 실행할 노드를 결정
  • kube-controller-manager
    • deployment 와 같은 리소스 컨트롤러를 관리
  • cloud-controller-manager
    • 클라우드 업체와 연동하여 로드 밸런서나 디스크 볼륨과 같은 자원을 관리



**워커노드**
    워커 노드는 클러스터 내에서 사용자의 워크로드를 실행

노드 컴포넌트

  • kublet
    • 노드에 예약된 워크로드를 실행하기 위해 컨테이너 런타임을 관리하고
    • 컨테이너 상태를 모니터링한다.
  • kube-proxy
    • 서로 다른 노드에 있는 파드 간 통신이나 파드와 인터넷 사이의 네트워크 트래픽을 라우팅한다.
  • container runtime
    • 컨테이너를 시작하고 중지하며 커넽이너 간 통신을 처리한다.
    • 일반적으로 도커가 사용된다.
      • 쿠버네티스의 경우 rkt 나 CRI-O와 같은 다른 컨테이너 런타임도 지원한다.

 

 

반응형