Kubernetes/Kubernetes Basics

📌 Kubernetes란? 컨테이너 오케스트레이션의 핵심 기술

ygtoken 2025. 3. 2. 20:29
728x90

 

1️⃣ Kubernetes의 등장 배경

 

현대 애플리케이션 개발에서는 컨테이너(Container) 기술이 필수 요소가 되었습니다.

Docker 같은 컨테이너 기술 덕분에 애플리케이션을 어디서든 실행할 수 있지만,

문제는 수백~수천 개의 컨테이너를 어떻게 관리할 것인가? 하는 것이었습니다.

 

✅ 컨테이너가 많아질수록 발생하는 문제:

컨테이너가 실행 중인지 하나하나 확인해야 한다.

컨테이너가 장애가 나면 자동으로 복구해야 한다.

서비스 트래픽에 맞춰 컨테이너 개수를 자동으로 조정해야 한다.

특정 컨테이너로 요청을 보낼 방법이 필요하다.

 

이 모든 문제를 해결하기 위해 컨테이너 오케스트레이션(Container Orchestration) 기술이 등장했고,

그 중 가장 강력한 툴이 바로 **Kubernetes(쿠버네티스)**입니다. 🚢

 


 

2️⃣ Kubernetes란? (공식 정의)

 

Kubernetes는 컨테이너화된 애플리케이션의 배포(Deploy), 확장(Scale), 운영(Manage)을 자동화하는

오픈소스 컨테이너 오케스트레이션 플랫폼입니다.

 

📌 간단히 말해, Kubernetes는 컨테이너를 체계적으로 운영하는 자동화 시스템입니다.

이를 통해 개발자는 애플리케이션의 동작에만 집중할 수 있으며, 운영팀은 컨테이너 관리의 복잡성을 줄일 수 있습니다.

 

Kubernetes의 주요 특징

자동화(Auto-Scaling): 트래픽에 따라 컨테이너 개수를 자동으로 조절

자체 복구(Self-Healing): 컨테이너가 중단되면 자동으로 재시작

로드 밸런싱(Load Balancing): 컨테이너 간 트래픽 분배

배포 자동화(Automated Deployment): 지속적인 배포 및 업데이트 지원

멀티 클라우드 지원: AWS, Azure, GCP, On-Premise 어디서든 사용 가능

 

👉 이러한 기능 덕분에, Kubernetes는 Netflix, Google, Airbnb 같은 기업에서도 사용하고 있습니다!

 


 

3️⃣ Kubernetes와 Docker의 관계

 

Kubernetes는 컨테이너를 관리하는 시스템이고,

Docker는 컨테이너를 실행하는 기술입니다.

 

📌 쉽게 말하면,

Docker는 컨테이너를 만들고 실행하는 역할

Kubernetes는 여러 개의 컨테이너를 자동으로 운영하는 역할

 

🚢 비유하자면,

Docker는 하나의 배(ship)이고,

Kubernetes는 여러 개의 배를 관리하는 항구(port) 및 선장 같은 역할을 합니다.

 

즉, Docker는 Kubernetes 없이도 사용할 수 있지만,

Kubernetes를 사용하려면 Docker 같은 컨테이너 런타임이 필요합니다.

 


 

4️⃣ Kubernetes의 구조 (간단 개요)

 

Kubernetes는 Master NodeWorker Node로 구성된 클러스터 구조를 가지고 있습니다.

 

🛠 기본 구성 요소:

Master Node 🏢: 클러스터 전체를 관리하는 컨트롤 센터

Worker Node 🏗️: 실제 컨테이너를 실행하는 노드

 

📌 클러스터 예시

+--------------------+
|  Master Node      |  👨‍✈️ "전체 관리"
|  - API Server     |
|  - Scheduler      |
|  - Controller     |
|  - etcd (DB)      |
+--------------------+
       ⬇️  
+--------------------+
|  Worker Node 1    | 🚀 "컨테이너 실행"
|  - Kubelet       |
|  - Kube-proxy    |
|  - Pod 1 (App)   |
|  - Pod 2 (App)   |
+--------------------+

+--------------------+
|  Worker Node 2    | 🚀 "컨테이너 실행"
|  - Kubelet       |
|  - Kube-proxy    |
|  - Pod 3 (App)   |
+--------------------+

Master Node는 클러스터의 모든 작업을 조정하고,

Worker Node는 실제로 컨테이너(Pod)를 실행합니다.

 


 

5️⃣ Kubernetes가 중요한 이유

 

“Docker만으로도 애플리케이션을 실행할 수 있는데, 왜 Kubernetes가 필요할까?” 🤔

 

Docker 단독 사용 시 문제점

1. 컨테이너가 꺼지면 직접 다시 실행해야 한다.

2. 여러 개의 컨테이너를 실행하면, 관리가 어려워진다.

3. 트래픽이 많아질 경우, 컨테이너를 수동으로 늘려야 한다.

 

Kubernetes를 사용하면?

1. 컨테이너가 꺼지면 자동으로 다시 실행됨 (Self-Healing)

2. 애플리케이션 배포, 업데이트를 자동화할 수 있음

3. 트래픽에 따라 컨테이너 개수를 자동 조절 (Auto-Scaling)

 

 


 

🔥 결론:

Kubernetes는 확장성과 안정성을 보장하는 컨테이너 관리 시스템입니다.

운영자가 직접 컨테이너를 관리할 필요 없이, Kubernetes가 자동으로 조정해 줍니다! 🚀

📌 마무리: Kubernetes는 컨테이너 관리를 위한 필수 도구!

 

Kubernetes는 단순한 컨테이너 실행을 넘어,

자동화된 배포, 확장성, 자가 복구 기능을 제공하는 강력한 플랫폼입니다.

 

✅ Kubernetes를 사용하면?

컨테이너 수가 많아도 자동으로 관리 가능!

장애 발생 시 빠르게 복구 가능!

클라우드 환경에서도 자유롭게 확장 가능!

 

 

728x90