「수십·수백 컨테이너를 여러 서버에 분산 운영」하면 docker compose로는 한계.
Kubernetes(K8s)가 「컨테이너 오케스트레이션의 표준」 — 스케줄링·복구·확장·로드 밸런싱 자동화.
왜 필요한가.
단일 호스트면 Docker Compose로 충분.
여러 서버 + 자동 복구(컨테이너 죽으면 재시작) + 자동 확장(부하 증가 시 인스턴스 추가) + 무중단 배포 + 시크릿 관리 같은 게 필요해지면 K8s 영역.
주요 개념.
Pod — 컨테이너 1개+(가장 작은 단위).
Deployment — Pod의 복제본 관리.
Service — 네트워크 노출.
Ingress — 외부 진입점.
ConfigMap·Secret — 설정·비밀.
Namespace — 그룹화.
kubectl.
K8s 제어의 표준 명령.
kubectl get pods — Pod 목록.
kubectl apply -f manifest.yaml — YAML로 자원 적용.
kubectl logs pod-name.
kubectl exec -it pod -- bash.
거의 모든 K8s 작업이 kubectl로.
복잡성.
K8s는 매우 강력하지만 학습 곡선이 매우 가파름.
「작은 프로젝트에 K8s」는 과잉 — Docker Compose나 단순 systemd가 더 적합.
「수십 명 팀 + 여러 서비스 + 다중 리전」 같은 규모가 되어야 K8s 진가.
시작은 minikube·k3s·Docker Desktop의 K8s 기능으로 로컬 학습.
한 줄 요약
Kubernetes는 컨테이너 오케스트레이션 표준 — Pod·Deployment·Service·Ingress·ConfigMap.
kubectl로 제어.
자동 복구·확장·무중단 배포 강점, 학습 곡선 매우 가파름.
작은 건 Compose가 적합.
더 알아볼 것
- minikube·k3s·kind — 로컬 K8s
- Helm — 패키지 관리
- K8s 운영 — managed (EKS·GKE·AKS)