⭐ 쿠버네티스(Kubernetes)란?
쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼이다. Docker와 같은 컨테이너 기술을 사용하면 애플리케이션을 동일한 환경에서 실행할 수 있지만, 컨테이너 수가 많아질수록 이를 직접 배포하고 관리하기 어려워진다.
이때 쿠버네티스는 여러 서버(Node)에 걸쳐 컨테이너를 자동으로 배포하고, 실행 상태를 관리하며, 장애가 발생하면 복구하는 역할을 한다. 즉, 쿠버네티스는 여러 컨테이너를 안정적으로 운영하기 위한 관리 시스템이라고 볼 수 있다.
2014년 Google이 오픈소스로 공개했으며, 현재는 CNCF(Cloud Native Computing Foundation)에서 관리하고 있다.
주요 기능
1. 자동화된 컨테이너 관리
- 컨테이너의 배포, 스케일링, 롤아웃(업데이트), 롤백을 자동으로 처리
2. 서비스 디스커버리 & 로드 밸런싱
- DNS 이름 또는 IP 주소를 통해 컨테이너에 접근 가능하도록 지원
- 트래픽을 여러 컨테이너에 고르게 분산
3. 스토리지 오케스트레이션
- 로컬 저장소나 클라우드 스토리지를 컨테이너에 자동으로 연결하여 사용
4. 자동 복구 (Self-healing)
- 컨테이너가 중단되면 자동으로 재시작
- 노드(서버)에 문제가 발생하면 해당 컨테이너를 다른 노드에서 다시 실행
5. 선언적 구성
- 원하는 상태를 YAML 파일에 정의하면, 쿠버네티스가 현재 상태를 지속적으로 확인하고 원하는 상태로 유지
쿠버네티스 아키텍처 구조
쿠버네티스 클러스터는 크게 마스터(Master)와 워커 노드(Worker Node)로 구성된다.

| 구분 | 구성 요소 | 역할 |
| Kubernetes Master 전체 클러스터를 관리하는 컨트롤 플레인 |
API Server | 모든 요청의 진입점. kubectl 명령어를 받아 처리 |
| Scheduler | 새로운 Pod를 어느 노드에 배치할지 결정 | |
| Controller-Manager | 클러스터 상태를 지속적으로 감시하고 원하는 상태 유지 | |
| etcd | 클러스터의 모든 설정 및 상태 정보를 저장하는 분산 키-값 저장소 | |
| Worker Node 실제 애플리케이션이 실행되는 서버 |
Pod | 컨테이너를 실행하는 가장 작은 단위. 하나의 Pod 안에 하나 이상의 컨테이너 포함 가능 |
| kubelet | 마스터의 명령을 받아 해당 노드의 Pod 상태 관리 | |
| Kube-proxy | 네트워크 트래픽 라우팅 처리 |
⭐ 쿠버네티스의 주요 배포판
쿠버네티스는 다양한 환경과 목적에 맞게 여러 배포판이 존재한다. 크게 직접 설치형과 클라우드 관리형으로 나눌 수 있다.
1. 바닐라 쿠버네티스 (Vanilla Kubernetes)
- CNCF에서 관리하는 공식 배포판
- 가장 순수한 형태로, 다른 모든 배포판의 기준이 됨
2. Red Hat OpenShift
- 기업용으로 설계된 엔터프라이즈급 배포판
- CI/CD 파이프라인, Helm 차트 등 다양한 도구가 기본 내장
- RHEL(Red Hat Enterprise Linux) 기반으로 운영
3. Rancher
- 온프레미스/클라우드 등 다양한 환경에서 멀티 클러스터 관리에 강점
- RKE(Rancher Kubernetes Engine)를 통한 간편한 클러스터 구축 지원
4. Amazon EKS (Elastic Kubernetes Service)
- AWS에서 제공하는 관리형 쿠버네티스 서비스
- AWS 인프라와 긴밀하게 통합되어 있어 AWS 사용자에게 최적
5. Google GKE (Google Kubernetes Engine)
- 쿠버네티스를 만든 구글이 제공하는 관리형 서비스
- 쿠버네티스 최신 기능을 가장 빠르게 반영
6. Microsoft AKS (Azure Kubernetes Service)
- Microsoft Azure에서 제공하는 관리형 쿠버네티스 서비스
- Azure 클라우드 서비스와 통합되어 있어 Azure 사용자에게 최적
7. DigitalOcean Kubernetes
- 간단한 설정과 저렴한 비용으로 빠르게 쿠버네티스 환경 구축 가능
💡클라우드 제공업체의 관리형 서비스(EKS, GKE, AKS)는 해당 클라우드에 최적화되어 있고,
Rancher나 OpenShift 같은 배포판은 환경에 구애받지 않고 유연하게 사용할 수 있다.
⭐ 미니쿠베 (Minikube)
Minikube는 로컬 환경에서 쿠버네티스를 실습하기 위한 경량 배포판이다.
실제 운영 클러스터는 여러 서버(노드)가 필요하지만, Minikube는 단일 노드로 마스터와 워커를 하나에 구성해주기 때문에 개인 PC에서도 쿠버네티스를 경험해볼 수 있다.
주요 특징
- 단일 노드 클러스터: 마스터 + 노드가 하나의 VM 안에 구성됨
- 경량화: 개발, 테스트, 학습 목적에 최적화된 구현체
- 크로스 플랫폼: Linux, macOS, Windows 모두 지원
- 핵심 기능 지원: DNS, NodePort, ConfigMap, Secret, 대시보드, Ingress 등 실무에서 쓰는 주요 기능 대부분 사용 가능
💡실제 프로덕션 환경에서는 EKS, GKE, AKS 같은 클라우드 관리형 서비스를 사용하지만,
쿠버네티스를 처음 배우는 단계에서는 Minikube로 시작하는 것이 가장 일반적이다.

'클라우드응용SW개발' 카테고리의 다른 글
| [Cloud] 12주차-3. Kubernetes Deployment 실습 (0) | 2026.06.04 |
|---|---|
| [Cloud] 12주차-2. Minikube + kubectl 실습 (0) | 2026.06.04 |
| [Cloud] 11주차-2. Docker 설치 및 이미지 빌드 실습 (0) | 2026.06.03 |
| [Cloud] 11주차-1. 컨테이너 기술과 Docker의 이해 (0) | 2026.06.03 |
| [Cloud] 10주차-2. Azure Functions Blob Trigger로 위협 파일 감지 실습 (0) | 2026.06.03 |