데이터 엔지니어링/K8s

[K8s] 쿠버네티스 컨트롤 플레인(Control Plane) 컴포넌트

pythaac 2022. 5. 13. 18:33

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

 

쿠버네티스 컴포넌트

쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다.

kubernetes.io

https://kb.novaordis.com/index.php/Kubernetes_Control_Plane_and_Data_Plane_Concepts

 

  •  정의
    • Cluster에 관한 전반적인 결정(스케줄링 등)을 수행
    • 클러스터 이벤트를 감지하고 반응
      - ex) deployment의 replicas 필드에 대한 요구 조건이 충족되지 않으면 새로운 pod를 구동시킴
  • 특징
    • 클러스터 내 어떤 머신에서든 동작 가능
    • 그러나 보통 동일 머신상에서 모든 Control Plane 컴포넌트를 구동
    • 그리고 해당 머신에서는 사용자 컨테이너를 동작시키지 않음

 

kube-apiserver

  • 쿠버네티스 API를 노출하는 컴포넌트
    - 쿠버네티스 Control Plane의 프론트엔드
  • 수평 확장이 가능한 디자인
    - 더 많이 배포하여 확장 가능

 

etcd

  • 모든 Cluster 데이터를 담는 저장소
    - 일관성
    - 고가용성
    - kev-value
  • 이를 사용할 경우 back-up 계획은 필수

 

kube-scheduler

  • Node가 배정되지 않은 새로 생성된 Pod를 감지하여 실행할 노드를 선택함
  • 스케줄링 결정 요소
    • 리소스에 대한 요구사항
    • 하드웨어/소프트웨어/정책 제약
    • affinity / anti-affinity 명세
    • 데이터 지역성
    • 워크로드간 간섭
    • 데드라인

 

kube-controller-manager

  • Controller 프로세스를 실행
  • Controller
    - Controller : API 서버를 통해 Cluster의 공유된 상태를 감시
    - 현재 상태를 원하는 상태로 이행시키는 control-loop
  • 논리적으로 각 Controller는 분리된 프로세스
    - 그러나 단일 바이너리로 컴파일되고 단일 프로세스 내에서 실행
  • Controller가 포함하는 것
    • Node controller
      - 노드가 다운되었을 때 통지/대응에 관한 책임
    • Replication Controller
      - 시스템의 모든 replication controller 오브젝트에 대해 알맞은 수의 pod를 유지시키는 책임
    • Endpoint Controller
      - Endpoint 오브젝트를 채움
      - 서비스와 pod를 연결시킨다는 뜻
    • Service Sccount & Token Controller
      - 새로운 namespace에 대한 (기본 계정/API 접근 토큰)을 생성

 

cloud-controller-manager

  • 클라우드별 control 로직을 포함
  • 기능
    • Cluster를 클라우드 공급사의 API에 연결
    • 다음 2가지 컴포넌트를 구분
      1) 해당 클라우드 플랫폼과 상호작용하는 컴포넌트
      2) Cluster와만 상호작용하는 컴포넌트
  • 클라우드 제공자 전용 controller만 실행
    - 사내 또는 PC 내부 학습 환경에서의 실행은 Cluster에 이 controller가 없음
  • kube-controller-manager와 마찬가지
    - 논리적으로 독립적인 단일 프로세스
    - 수평으로 확장하여 성능 향상 및 장애 대응 가능

 

 

 

https://kb.novaordis.com/index.php/Kubernetes_Control_Plane_and_Data_Plane_Concepts

 

Kubernetes Control Plane and Data Plane Concepts - NovaOrdis Knowledge Base

External Internal Overview When you deploy Kubernetes, you get a cluster. Cluster A Kubernetes cluster consists of a set of nodes, which all run containerized applications. Of those, a small number are running applications that manage the cluster. They are

kb.novaordis.com

 

'데이터 엔지니어링 > K8s' 카테고리의 다른 글

[K8s] Helm  (0) 2022.05.16
[K8s] Cluster 초기세팅 에러 (coredns PENDING)  (0) 2022.05.13
[K8s] 쿠버네티스 애드온  (0) 2022.05.13
[K8s] 쿠버네티스 노드(Node) 컴포넌트  (0) 2022.05.13
[K8s] Kubernetes (K8s)  (0) 2022.05.13