본문 바로가기
Study/Docker&Kubernetes

[Kubernetes] 쿠버네티스 아키텍쳐 & 핵심 개념

by kimdaepa 2026. 6. 24.

Cluster

  • 마스터 노드 + 워커 노드들 + 그 위에서 돌아가는 모든 것의 집합 (컬렉션 세트)
  • 배포 혹은 원하는 최종 상태(desired state)를 구성하는 전체
  • 이 모든 것이 연결된 하나의 네트워크

Node

  • 하나 또는 여러 개의 Pod를 호스팅하는 물리 머신 또는 가상 머신
  • 특정 하드웨어 용량(CPU·메모리)을 가짐
  • 클러스터와 통신하거나 클러스터 내에서 통신
  • 역할에 따라 마스터 노드(컨트롤 플레인) 와 워커 노드로 나뉨

Pod

  • 쿠버네티스에서 배포할 수 있는 가장 작은 단위
  • 애플리케이션 컨테이너 + 요구 리소스가 결합된 유닛 (컨테이너를 감싼 껍질)
  • 컨테이너 1개 이상 보유 가능 → 같은 Pod 안의 컨테이너는 네트워크·스토리지 공유
  • Pod를 생성하면 그 안에 정의된 컨테이너가 실행됨

Worker Node

  • Pod가 실제로 실행되는 머신 (물리 서버 또는 가상 인스턴스, 예: AWS EC2)
  • 하나의 노드 위에 여러 Pod를 동시에 실행 가능 (자원이 허락하는 만큼 빽빽하게 배치)
  • 각 워커 노드에서 항상 함께 도는 3종 세트가 존재

워커 노드 3종 세트

  • kubelet — 컨트롤 플레인과 통신하며 이 노드 위 Pod를 실제로 띄우고 관리하는 에이전트 (노드의 핵심 일꾼)
  • container runtime — 컨테이너를 실제로 실행하는 엔진. CRI 규격을 따르는 containerd, CRI-O 등 (예전엔 Docker도 dockershim을 거쳐 사용했으나 1.24부터 제거됨)
  • kube-proxy — 노드의 네트워크 규칙(iptables/IPVS)을 설정해, Service로 들어온 트래픽을 올바른 Pod로 라우팅하는 도구

Master Node (Control Plane)

  • 워커 노드와 Pod를 제어하는 컨트롤 센터 → 보통 워커 노드·Pod와 직접 상호작용하지 않고 여기를 통해 작업
  • 워커 노드와 분리된 별도 서버(리모트 머신)
  • 큰 배포에서는 고가용성(HA)을 위해 여러 머신으로 분산 가능 → 워커 노드가 죽어도 컨트롤 플레인은 살아있음

구성요소 4종

  • API Server — 모든 요청이 들어오는 입구. kubectl로 상호작용하는 대상
  • etcd — 클러스터의 모든 상태를 저장하는 키-값 DB
  • Scheduler — 새 Pod를 어느 워커 노드에 올릴지 결정
  • Controller Manager — 실제 상태를 원하는 상태로 맞춰주는 관리자

클라우드 배포 시 Controller Manager는 둘로 보강됨. kube-controller-manager = K8s 내부 컨트롤러 / cloud-controller-manager = 클라우드 연동 전용(클라우드 환경에서만 존재)

Service

  • 여러 Pod를 하나로 묶어 고정된 IP·DNS 이름을 부여하는 추상화 계층
  • Pod는 죽고 새로 뜰 때마다 IP가 바뀌므로, 변하지 않는 진입점이 필요함 → 그 역할
  • 들어온 요청을 뒤에 붙은 Pod들에 분배(로드밸런싱)
  • 호출하는 쪽은 Pod의 실제 IP를 몰라도 Service 주소로 접근 가능

'Study > Docker&Kubernetes' 카테고리의 다른 글

[Docker] Docker Compose & 유틸리티 컨테이너  (0) 2026.06.22
[Docker] 컨테이너 통신  (0) 2026.03.04
[Docker] .dockerignore&.env&ARG 작업  (0) 2026.03.03
[Docker] Volume  (0) 2026.03.03
[Docker] Docker Hub  (0) 2026.02.20