본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

쿠버네티스 노드(Kubernetes Node)은 Kubernetes 클러스터에서 실제 워크로드(예: 컨테이너화된 애플리케이션)를 실행하는 물리 서버 또는 가상 머신을 의미한다.

노드는 컨테이너를 담고 있는 파드(Pod)를 실행하는 머신이며, 이 머신은 물리 서버일 수도 있고 가상 머신(VM)일 수도 있다. 클러스터는 하나 이상의 노드를 포함하며, 리소스가 제한된 개발/실습 환경에서는 노드가 하나인 경우도 있다. 노드는 클러스터의 제어 영역(Control Plane)에 의해 관리되며, 컨테이너 실행에 필요한 여러 구성 요소를 포함한다.

노드의 구성 요소

편집 원본 편집

노드 안에는 다음과 같은 핵심 컴포넌트들이 존재한다:

  • kubelet — 노드 에이전트(agent). Control Plane으로부터 지시받은 대로 파드를 생성/삭제하고, 파드와 컨테이너의 상태를 지속적으로 감시한다.
  • 컨테이너 런타임(Container Runtime) — 실제 컨테이너를 동작시키는 엔진으로, 컨테이너 이미지 다운로드, 컨테이너 생성/실행/종료 등을 담당한다. containerd, CRI-O 등이 주로 사용된다.
  • kube-proxy — 네트워크 프록시 및 로드밸런서 역할을 수행하며, 서비스(Service) 추상화 하에서 Pod들 간 또는 외부와의 트래픽을 라우팅/포워딩한다.

이들 컴포넌트 덕분에 노드는 클러스터의 워크로드를 안정적으로 실행하고, 네트워크 및 리소스 관리를 수행할 수 있다.

노드의 역할 및 기능

편집 원본 편집
  • 노드는 파드(Pod)를 실행하고 관리 — 클러스터에 정의된 워크로드를 실제로 구동
  • 여러 노드를 두면 워크로드 분산, 고가용성, 확장성 확보 가능
  • 리소스(메모리, CPU, 디스크, 네트워크) 기반으로 스케줄링 및 배치 — 어떤 노드에 어떤 워크로드를 띄울지 Control Plane이 결정

노드 유형: 워커 노드 vs 컨트롤 플레인 노드

편집 원본 편집

클러스터 내 노드는 크게 다음 두 역할로 구분될 수 있다:

  • 워커 노드(Worker Node) — 실제 애플리케이션이 실행되는 노드, 위에서 언급한 kubelet‧컨테이너 런타임‧kube-proxy가 동작
  • 컨트롤 플레인 노드(Control Plane Node, 또는 마스터 노드) — 클러스터 전체를 제어하는 컴포넌트들(API 서버, 스케줄러, 컨트롤러 매니저, etcd 등)이 실행되며, 워크로드 파드가 반드시 실행되지는 않아도 됨. 환경에 따라 컨트롤 플레인을 별도로 분리해 고가용성(HA)을 구성하기도 한다.

노드의 중요성

편집 원본 편집
  • 노드는 컨테이너를 실행하는 가장 근본적인 실행 단위이므로, 노드의 리소스(메모리, CPU, 디스크 등)가 클러스터의 전체 성능과 안정성에 직접 영향
  • 노드 수와 사양을 필요에 따라 조절함으로써, 확장성(scaling) 및 고가용성(availability)을 확보할 수 있다
  • 워커 노드에 장애가 발생하면, Control Plane이 자동으로 다른 노드에 워크로드를 재배치하는 등의 복구를 수행할 수 있음