for Developer/Kubernetes

k8s::쿠버네티스 컴포넌트

Dev:P 2020. 4. 12. 12:08
반응형

쿠버네티스 클러스터는 컨테이너화된 애플리케이션으 실행하는 노드라고하는 워커 머신의 집합이다.
모든 클러스터는 최소 한 개의 워커 노드를 가진다.
워커 노드는 애플리케이션의 구성요소인 파드를 호스트한다. Control Plane은 워커 노드와 클러스터내 파드를 관리한다.


그림1. 쿠버네티스 클러스터 다이어그램


Control Plane Component

클러스터에 관한 전반적인 결정(ex. 스케줄링)을 수행하고 클러스터 이벤트(ex. deplotment의 replicas field에 대한 요구 조건이 충족되지 않을 경우 새로운 파드 구동)를 감지하고 반응한다.

 

kube-api-server

API 서버는 쿠버네티스 API를 노출하는 쿠버네티스 컨트롤 플레인 컴포넌트이다. API 서버는 Control Plane Component의 Front-end이다.

 

etcd

모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소, 일관성/고가용성 key-value 저장소이다.

 

kube-scheduler

노드가 배정되지 않은 새로 생성된 파드를 감지하고, 실행할 노드를 선택

 

kube-controller-manager

아래 컨트롤러를 구동하는 마스터상의 컴포넌트

  • Node Controller: 노드가 다운되었을 때 통지와 대응에 관한 책임

  • Replication Controller: 시스템의 모든 레플리케이션 컨트롤러 오브젝트에 대해 알맞은 수의 파드를 유지시키는 책임

  • Endpoints Controller: 서비스와 파드를 연결시키는 책임

  • Service Accont & Token Controller: 새로운 namespace에 대한 기본 계정과 API 접근 토큰 생성을 책임

cloud-controller-manager

클라우드 제공사업자와 상호작용하는 컨트롤러를 작동시킨다.


Node Component

노드 컴포넌트는 동작중인 파드를 유지시키고 쿠버네티스 런타임 환경을 제공하며, 모든 노드상에서 동작한다.

 

kubelet

클러스터의 각 노드에서 실행되는 에이전트. kubelet은 파드에서 컨테이너가 확실하게 동작하도록 관리한다.

 

kube-proxy

kube-proxy는 클러스터의 각 노드에서 실행되는 네트워크 프록시로, 쿠버네티스의 서비스 개념의 구현부이다. 

 

 

출처: https://kubernetes.io/docs/concepts/

반응형