원리부터 이해하는 쿠버네티스 - 클러스터, 컨트롤 플레인, 노드, 워크로드, 네트워크, 스토리지
✅쿠버네티스의 개념 쿠버네티스는 어떻게 탄생했으며 어떤 역할을 수행하는지 알아봅시다. 1-1) 쿠버네티스의 어원과 역사쿠버네티스Kubernetes는 컨테이너화된 애플리케이션의 자동 배포, 확장
www.hanbit.co.kr
쿠버네티스 클러스터 (Cluster)

- 쿠버네티스는 다수의 노드로 구성되는 경우가 많습니다.
- 상단의 그림을 보면 클러스터는 크게 마스터 노드(Master Node)와 워커 노드(Worker Node)로 구분되는 것을 알 수 있습니다.
- 개발자는 주로 마스터 노드와 통신하며 사용자는 인터넷을 통해 워커 노드와 통신하는 경우가 많습니다.
| 구분 | 비유 | 역할 |
| 마스터 노드(Control Plane) | 본사 / 관리자 | “어느 서버에서 어떤 Pod를 몇 개 실행할지” 결정 |
| 워커 노드(Worker Node) | 현장 직원 | 실제로 Pod와 Container를 실행 |
* 그림과 같은 구조를 유지하기 위해서는 마스터 노드와 워커 노드 간의 유기적인 통신이 중요합니다.
* 이를 위해 CNI(Container Network Interfaces, 컨테이너 네트워크 인터페이스)라는 개념이 사용됩니다.
컨트롤 플레인(Control Plane) Feat. 마스터 노드

- 쿠버네티스 마스터 노드는 컨트롤 플레인을 다루는데, 컨트롤 플레인이란 쿠버네티스 클러스터 전반의 작업을 관리하는 역할을 합니다.
- 그림과 같이 마스터 노드에서 컨트롤 플레인을 구성하는 요소에는 API 서버, etcd, 스케줄러, 컨트롤러 매니저가 있습니다.
| 구성 | 요소 |
| kube-apiserver | Kubernetes API 요청을 받아 처리하는 중앙 진입점 |
| etcd | 클러스터의 상태와 설정 정보를 저장하는 Key-Value DB |
| kube-scheduler | 새로 생성된 Pod를 어떤 Worker Node에 배치할지 결정 |
| kube-controller-manager | 현재 상태가 사용자가 원하는 상태와 같도록 지속적으로 조정 |
* API Server = 요청 접수
* etcd = 상태 저장
* Scheduler = Pod 배치 결정
* Controller Manager = 원하는 상태 유지
API 서버
* 쿠버네티스의 작업은 kubectl 명령어를 통해 마스터 노드의 kube-apiserver에게 API 요청을 보냄으로써 이루어집니다.
* API 서버는 쿠버네티스 컨트롤 플레인에서의 프런트엔드 역할을 합니다.
etcd
* 쿠버네티스 클러스터에 존재하는 모든 데이터를 저장하는 key-value 저장소입니다.
스케줄러
* 새롭게 생성되는 파드를 어느 노드에 실행시킬지 정하는 역할을 kube-scheduler가 수행합니다.
노드 (Node)
| 구성 | 요소 |
| kubelet | Control Plane의 지시를 받아 Pod가 정상적으로 실행되도록 관리 |
| Container Runtime | 실제 Container를 실행 |
| kube-proxy | Service와 Pod 간 네트워크 통신을 지원 |
| Pod | 애플리케이션 Container가 실행되는 최소 배포 단위 |
Kubelet
* 쿠버네티스 클러스터를 구성하는 각 노드에는 Kubelet이 실행되는데 Kubelet은 파드 내부의 컨테이너 실행을 담당합니다.
* Kubelet은 파드의 상태를 모니터링하고, 파드의 상태에 이상이 있다면 해당 파드를 다시 배포합니다.
Kube-Proxy
* Kube-Proxy는 노드에서 네트워크 역할을 수행합니다.
* Kube-Proxy는 노드에 존재하는 파드들이 쿠버네티스 내부/외부와 네트워크 통신을 가능하게 합니다.
Container Runtime
* 컨테이너 런타임은 컨테이너의 생명주기를 담당합니다.
* 이를 위해 Kubelet은 컨테이너 런타임과 통신하는데, 이때 사용하는 것이 컨테이너 런타임 인터페이스(Container Runtime Interface)입니다.
Pod
* 쿠버네티스에서는 컨테이너가 단독으로 실행되는 것이 아닌 Pod라는 단위에서 실행되며, Pod는 컨테이너를 그룹화한 오브젝트입니다.
* 파드는 실행할 때마다 IP주소를 배정받으므로 파드의 IP의 주소는 실행할 때마다 변경됩니다.
워크로드 (Workload) Feat. 파드 관련 쿠버네티스 리소스
Kubernetes Resource
│
├─ Workload
│ ├─ Pod
│ ├─ Deployment
│ ├─ ReplicaSet
│ ├─ StatefulSet
│ ├─ DaemonSet
│ ├─ Job
│ └─ CronJob
│
├─ Service
├─ ConfigMap
├─ Secret
├─ Ingress
├─ PersistentVolume
└─ Namespace
- 워크로드는 쉽게 말하면 "Pod를 어떤 방식으로 실행하고 관리할 것인가"를 정의하는 리소스들입니다.
| 리소스 | 역할 | 간단히 |
| Pod | 하나 이상의 Container를 실행하는 최소 실행 단위 | 실제 애플리케이션이 실행되는 공간 |
| ReplicaSet | 지정한 개수의 Pod가 항상 존재하도록 유지 | Pod 개수 유지 담당 |
| Deployment | ReplicaSet을 관리하면서 배포·업데이트·롤백 수행 | 일반적인 애플리케이션 배포 관리자 |
| StatefulSet | Pod별 고유 ID와 저장소를 유지하며 관리 | 상태가 있는 애플리케이션 관리 |
| DaemonSet | 특정 또는 모든 Node마다 Pod를 실행 | 노드마다 하나씩 실행 |
| Job | 작업이 완료될 때까지 실행 후 종료 | 한 번 실행하는 작업 |
| CronJob | 정해진 시간마다 Job 실행 | 예약된 반복 작업 |
ReplicaSet
* 레플리카셋은 파드의 복제를 관리하여 클라이언트가 요구하는 복제본 개수만큼 파드를 복제하고 모니터링하고 관리합니다.
Deployment
* 디플로이먼트는 배치라는 의미가 있습니다.
* 이 의미에 맞게 디플로이먼트는 애플리케이션의 배포와 스케일링을 관리하는 역할을 담당합니다.
DaemonSet
* 데몬셋은 쿠버네티스를 구성하는 모든 노드가 파드의 복사본을 실행하도록 합니다.
* 쿠버네티스 클러스터에 새로운 노드가 추가되면 데몬셋이 관리하는 파드 역시 추가됩니다.
* 쉽게 말하자면 노드를 추가할 때마다 기본 파드를 지정해 놓고 수동으로 생성할 필요가 없다는 뜻입니다.
* 데몬셋은 주로 로깅, 모니터링, 스토리지 등과 같은 시스템 수준의 서비스를 실행하는 데 사용됩니다.
Job & CronJob
* 잡과 크론잡은 작업이 정상적으로 완료되고 종료되는 것을 담당합니다.
* 만약, 파드가 정상적으로 종료되지 않으면 재실행시킵니다.
네트워크

| 요소 | 서비스 | 역할 |
| Service | Kubernetes 리소스 | 여러 Pod에 고정된 접근 지점을 제공 |
| Ingress | Kubernetes 리소스 | HTTP/HTTPS 요청을 여러 Service로 라우팅 |
| 구분 | 대표 리소스 | 라우팅 기준 | 예시 |
| L4 | Service | IP, Port | 80번 포트 → nginx Pod |
| L7 | Ingress | URL, Host | /api → API Service, /web → Web Service |
* L4 : IP + Port 보고 라우팅
* L7 : Host(Domain) + Path 같은 HTTP 정보 기준
스토리지
| 요소 | 역할 | 예시 |
| Volume | Pod에 연결해서 사용하는 저장 공간 | Pod가 실제로 마운트해서 쓰는 공간 |
| PersistentVolume (PV) | 클러스터에 준비된 실제 저장 공간 | 실제 디스크 자원 |
| StorageClass | 어떤 방식으로 스토리지를 만들지 정의 | 스토리지 생성 규칙 |
| 요소 | 비유 | 실제 의미 |
| Volume | Pod가 쓰는 저장공간 (임시 저장공간) | 임시일 수도 있고 영구적일 수도 있음 |
| PV | 클러스터에 준비된 영구 디스크 (외장하드, 디스크 같은 영구 저장 공간) | Pod가 사라져도 별도로 유지 가능한 저장공간 |
'쿠버네티스' 카테고리의 다른 글
| [쿠버네티스] HPA(HorizontalPodAutoscaler) (0) | 2026.09.10 |
|---|---|
| [쿠버네티스] Labels and Selectors (0) | 2026.09.02 |
| [쿠버네티스] Deployment - 2 (0) | 2026.09.01 |
| [쿠버네티스] Deployment - 1 (0) | 2026.08.12 |
| [쿠버네티스] 레플리카셋(ReplicaSet) (0) | 2026.08.04 |