⚓ 쿠버네티스, 5살 아이에게 설명하듯
Source: Dev.to
Introduction
수백 개의 컨테이너가 있는 번화한 항구를 상상해 보세요.
누군가가 다음을 해야 합니다:
- 어떤 배가 어떤 컨테이너를 실을지 결정하기
- 고장 난 컨테이너 교체하기
- 화물의 무게 균형 맞추기
- 바쁠 때는 더 많은 배를 처리하기
그 역할을 하는 사람이 항구장입니다.
Kubernetes는 Docker 컨테이너를 같은 방식으로 관리합니다.
앱을 실행하는 Docker 컨테이너가 100개 있다고 가정해 보세요. 다음 상황에서는 어떻게 될까요:
- 하나가 다운되면? 💥
- 트래픽이 급증하면? 📈
- 서버가 죽으면? 🔥
- 다운타임 없이 업데이트가 필요하면?
이 모든 것을 수동으로 관리하려 하면 곧 악몽이 됩니다.
What Kubernetes Does
| 상황 | Kubernetes 동작 |
|---|---|
| 컨테이너가 죽었을 때 | 자동으로 새 컨테이너를 시작합니다 |
| 트래픽이 너무 많을 때 | 더 많은 컨테이너를 띄웁니다 |
| 트래픽이 감소했을 때 | 여분의 컨테이너를 제거합니다 |
| 업데이트가 필요할 때 | 오래된 컨테이너를 점진적으로 새 것으로 교체합니다 |
| 서버가 실패했을 때 | 컨테이너를 정상적인 서버로 옮깁니다 |
Desired State Example
당신은 Kubernetes에 이렇게 말합니다:
“내 웹 앱을 항상 5개의 복제본으로 실행하고 싶어요.”
Kubernetes는 그 상태를 지속적으로 유지하기 위해 작업합니다:
- 5개의 컨테이너를 시작합니다
- 하나가 죽으면 → 또 다른 컨테이너를 시작합니다
- 서버가 다운되면 → 컨테이너를 다른 서버로 이동합니다
클러스터에 충분한 용량만 있다면 이 모든 과정이 자동으로 이루어집니다.
Benefits
Kubernetes는 컨테이너화된 애플리케이션을 관리, 확장, 복구하도록 도와주어, 여러분이 원하는 대로 정확히 실행되도록 합니다.
🔗 이 내용이 도움이 되셨나요? 매일 ELI5 설명을 받아보려면 팔로우하세요!