쿠버네티스

[쿠버네티스] 쿠버네티스의 구조

saul 2026. 9. 12. 21:23

https://www.hanbit.co.kr/channel/view.html?cmscode=CMS5675948724&gad_source=1&gad_campaignid=23518945342&gbraid=0AAAAA_x2BewgWi5F5NZcIneowfewkbxH9&gclid=CjwKCAjwqonVBhA4EiwA9wYJ3Vq5fC5Be7fuBSnwJJH-eZXifvZGy6V7QwshVh25bb-0GXCcsRe3axoCX3MQAvD_BwE

 

원리부터 이해하는 쿠버네티스 - 클러스터, 컨트롤 플레인, 노드, 워크로드, 네트워크, 스토리지

✅쿠버네티스의 개념 쿠버네티스는 어떻게 탄생했으며 어떤 역할을 수행하는지 알아봅시다. 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

* 잡과 크론잡은 작업이 정상적으로 완료되고 종료되는 것을 담당합니다.

* 만약, 파드가 정상적으로 종료되지 않으면 재실행시킵니다.

 

 

네트워크

인그레스는 L7 라우팅을 하고 서비스는 L4 라우팅을 진행합니다.

요소  서비스  역할
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가 사라져도 별도로 유지 가능한 저장공간