🐳 쿠버네티스란 무엇인가?
Kubernetes | 쿠버네티스란?
컨테이너화된 애플리케이션을 자동으로 배포하고 운영 및 확장하는 오픈소스 플랫폼.
01. 왜 쿠버네티스를 써야 하는가? 🤔
🧑🏻🏫💬
요즘 사용자들은 더 빠르고, 더 안정적이며, 새로운 기능이 자주 추가되는 서비스를 원한다. 개발자는 이런 요구를 충족시키려면 짧은 시간에 고품질 애플리케이션을 개발해야 하기에, 대부분 오픈 소스를 가져다 쓰게 된다..
하지만 문제는 오픈 소스의 버전이 자주 바뀌고, 같은 팀 개발자들끼리도 사용하는 버전이 달라지는 상황이 발생한다.
👉 컨테이너는 이러한 문제를 해결해준다.
컨테이너 안에 필요한 ✔️라이브러리, ✔️운영체제 패키지 등 모든 실행 환경을 통째로 담아서 공유할 수 있음.
덕분에 개발 환경의 일관성을 유지할 수 있고, 배포도 쉬워진다.
02. 쿠버네티스란? 🚀
- 쿠버네티스(Kubernetes, 이하 k8s)는 컨테이너화된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼이다. 원래는 구글 내부 시스템이었던 Borg를 오픈소스로 공개한 것을 기반으로 만들어졌다.
- ☁️클라우드 환경☁️ 에서 대규모 애플리케이션을 효율적으로 관리하기 위한 솔루션으로 개발되었으며, 다양한 클라우드 환경에서 동작하며, AWS, GCP, Azure 등 주요 클라우드 서비스 제공 업체에서도 공식적으로 지원하고 있음.
03. 쿠버네티스의 대표적인 기능
✅ 애플리케이션 배포 자동화
k8s는 애플리케이션을 배포 계획에 맞게 신속하게 배포할 수 있음.
- 🏿CPU 사용률, 💾메모리 사용량, 🏗️컨테이너 수, 💿저장 공간 등을 모두 설정 가능‼️
이런 자원 사용량을 설정하고, 조건에 따라 가동중인 애플리케이션을스케일 업/다운이 가능함.
✅ 무중단 배포(Zero Downtime Deployment)
운영 중인 서비스의 새로운 버전을 사용자 모르게 무중단으로 배포 가능함.
롤링 업데이트나 블루-그린 배포 전략을 쉽게 적용할 수 있음.
✅ 하드웨어 자원 효율화
하드웨어 가동률을 높여서 자원 낭비를 줄일 수 있음.
여러 서비스가 클러스터에 동시에 올라가고, 남는 리소스를 효율적으로 재분배함.
04. 쿠버네티스 아키텍처
쿠버네티스는 마스터-노드 아키텍처로 구성되어 있다.
- 마스터 노드: 클러스터를 전체적으로 관리하는 역할을 함.
- 워커 노드: 실제로 컨테이너가 배포되어 실행되는 곳임.
POD 안에는 컨테이너가 1개 이상 존재할 수 있다..

출처 🔗 itwiki.kr
Kubernetes Cluster
┌─ Control Plane (Master Node) (클러스터 제어)
│ ├─ API Server (모든 명령의 입구)
│ ├─ Scheduler (Pod가 어디서 돌지 결정)
│ ├─ Controller Manager (상태를 원하는대로 유지)
│ ├─ etcd (Key-Value Store) (클러스터 상태 저장 DB)
│
└─ Worker Nodes (실제 일하는 서버)
├─ kubelet (Pod 실행 & 상태 관리)
├─ kube-proxy (네트워크 연결 및 로드밸런싱)
└─ Container Runtime (ex: containerd, Docker) (컨테이너 실행, ex: containerd)
Pods (on Worker Nodes) (컨테이너 실행 단위)
└─ Containers (실제 실행되는 앱 + 환경)
└─ Application + Dependencies
ASCII 포스터
┌──────────────────────────────┐
│ Control Plane │ << 클러스터 전체 관리
│ (Master Node 역할) │
│ │
│ ┌────────────────────────┐ │
│ │ API Server │ << 모든 명령의 입구
│ └────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ Scheduler │ << 어떤 노드에 Pod 배포할지 결정
│ └────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ Controller Manager │ << 클러스터 상태를 지속적으로 감시하고 조치
│ └────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────┐ │
│ │ etcd │ │ << 클러스터 상태 저장소 (Key-Value DB)
│ └────────────┘ │
└──────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────┐
│ Worker Nodes │ << 실제 앱이 돌아가는 곳
│ (각 노드는 아래 컴포넌트를 가짐) │
│ │
│ ┌────────────────────┐ ┌────────────────────┐ │
│ │ kubelet │ │ kubelet │ │ << 컨테이너 상태를 관리하고 명령 수행
│ ├────────────────────┤ ├────────────────────┤ │
│ │ kube-proxy │ │ kube-proxy │ │ << 네트워크 트래픽 관리 및 로드밸런싱
│ ├────────────────────┤ ├────────────────────┤ │
│ │ Pod(s) │ │ Pod(s) │ │ << 컨테이너가 실행되는 단위
│ │ ┌──────────────┐ │ │ ┌──────────────┐ │ │
│ │ │ Container(s)│ │ │ │ Container(s)│ │ │ << 실제 어플리케이션 실행
│ │ └──────────────┘ │ │ └──────────────┘ │ │
│ └────────────────────┘ └────────────────────┘ │
└───────────────────────────────────────────────────┘
입문자의 마음가짐.. 🍂🍂
- 컨테이너 개념과 Docker가 먼저 숙지되어야 함.
쿠버네티스는 결국 컨테이너를 관리하는 플랫폼이다.. - 쿠버네티스는 복잡한 시스템이다.. kubectl 명령어부터 익히고, 간단한 클러스터를 띄우는 것부터 시작해야 함.
- 🔗링크 🐳 쿠버네티스 설치 환경 고르는 방법
참고 자료
- 공식 홈페이지: https://kubernetes.io
- itwiki.kr 아키텍처 이미지 출처: https://itwiki.kr
- CNCF: https://www.cncf.io/
'BEYOND SW [4] DevOps' 카테고리의 다른 글
| [k8s] 쿠버네티스 설치 환경 고르는 방법 (0) | 2025.03.18 |
|---|---|
| [아카이브] Windows11에서 도커 테스크탑 실행 무한대기 문제 발생 시 필수 의례사항 (0) | 2025.03.18 |
| [k8s] 실습 ① ubuntu서버에 containerd 준비하기 (3) | 2025.03.14 |
| [Docker +] 쉘 프로그래밍 Shell Programming 문법과 간단 실습 (1) | 2025.03.13 |
| [Docker] 2일차 - 도커 네트워크의 이해 실습 (2) | 2025.03.12 |