오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-11 00:01
관리 메뉴

우노

[K8S] Control Plane, Data Plane이란? 본문

DevOps/Kubernetes

[K8S] Control Plane, Data Plane이란?

운호(Noah) 2023. 3. 19. 17:02

들어가기 앞서,

  • 쿠버네티스 클러스터는 노드들의 집합이며, 노드는 두가지 종류로 이루어져있습니다.
    • Master Node - Control Plane(컨트롤 플레인)
      • 워커 노드와 클러스터 내 파드들을 관리하고 제어합니다.
    • Worker Node - Data Plane(데이터 플레인)
      • 파드를 통해 실제 Application을 동작시킵니다.

Control Plane(컨트롤 플레인)

  • Control Plane은 현재의 클러스터 상태를 사용자가 원하는 클러스터 상태(ex. yaml 파일 내용)로 끊임없이 조정해 주는 컨트롤 센터입니다.
  • 즉, Control Plane에는 실제 서비스와는 무관한, k8s 클러스터 운영과 관련된 컴포넌트들로 이루어져 있습니다.
    • API Server
      • REST, kubectl 명령어 등을 입력 받아 요청을 처리하는 역할입니다.
    • Controller Manager
      • Kubernetes의 Resource를 모니터링하며,
      • 현재 상태와 사용자가 원하는 상태가 동일해지도록 관리하는 역할입니다.
    • Scheduler
      • 어떤 워커 노드에 파드를 배정할지 결정하는 역할입니다.
      • 파드가 요구하는 CPU,메모리 리소스 요구 사항 등에 따라 결정됩니다.
      • POD를 직접적으로 실행하는 것은 kubelet의 역할입니다.
    • etcd
      • 클러스터의 상태와 관련된 정보가 키-값 형식으로 저장된 데이터베이스입니다.

Data Plane(데이터 플레인)

  • Data Plane에는 실제 서비스 동작과 관련된 컴포넌트들로 이루어져 있습니다.
    • kubelet
      • Master Node와 통신하는 역할입니다.
      • Master Node의 Scheduler가 특정 노드에 파드를 할당하면,
      • kubelet이 해당 파드에서 컨테이너를 실행합니다.
    • kube-proxy
      • IP 변환 및 네트워크 통신을 관리하는 역할입니다.
    • container runtime engine
      • 컨테이너 실행을 위한 엔진 역할입니다.
      • 런타임 엔진 중 하나가 Docker입니다.

참고

Comments