컨테이너 · 쿠버네티스 (Container · Kubernetes)
I. 개요
- 컨테이너: 애플리케이션과 실행에 필요한 라이브러리를 하나의 패키지(이미지) 로 묶어, OS 커널을 공유하며 격리 실행하는 경량 가상화 기술(대표: Docker).
- 쿠버네티스(K8s): 다수의 컨테이너를 자동 배포·확장·운영(오케스트레이션) 하는 플랫폼. 구글이 개발, CNCF 표준.
- 필요성: 컨테이너가 수백·수천 개가 되면 수동 관리는 불가능 → 자동 스케줄링·복구·확장이 필요.
II. 개념도 · 구성요소
[Control Plane]
API Server · etcd(상태저장) · Scheduler · Controller Manager
│
┌────┴────┬─────────┐
[Node1] [Node2] [Node3] ← Worker Node
Pod Pod Pod Pod (kubelet · kube-proxy · 컨테이너런타임)
| 요소 | 역할 |
|---|---|
| Pod | 배포 최소 단위(컨테이너 1개 이상) |
| Node | Pod가 실행되는 워커 머신 |
| Deployment | Pod의 배포·롤링업데이트·복제 관리 |
| Service | Pod 집합에 고정 접근점(로드밸런싱) |
| etcd | 클러스터 상태 저장소 |
| Scheduler | Pod를 어느 Node에 배치할지 결정 |
III. 핵심 기능
- 자동 스케일링: 부하에 따라 Pod 수 조절(HPA)
- 자가 치유: 죽은 Pod 자동 재시작·재배치
- 롤링 업데이트·롤백: 무중단 배포
- 선언적 관리: 원하는 상태(YAML)를 선언하면 K8s가 맞춤
IV. 특징 · 장단점
| 구분 | 내용 |
|---|---|
| 장점 | 이식성, 자원 효율, 자동 확장·복구, 빠른 배포 |
| 단점 | 학습·운영 난이도 높음, 복잡한 네트워킹·보안 설정 |
| 고려사항 | 관리형 서비스(EKS·GKE·AKS)로 운영 부담 완화 |
V. 비교 — VM vs 컨테이너
| 구분 | 가상머신(VM) | 컨테이너 |
|---|---|---|
| 격리 | 하이퍼바이저, Guest OS | OS 커널 공유 |
| 크기 | 수 GB | 수십~수백 MB |
| 부팅 | 수십 초 | 수 초 이내 |
| 자원 | 무거움 | 가벼움 |
VI. 적용 · 실무 관점
- MSA의 실행 기반. 각 마이크로서비스를 컨테이너로 패키징하고 K8s로 운영. 관련: MSA
- 보안 관점: 이미지 취약점 스캔, 최소 권한 RBAC, 네트워크 정책, 시크릿 관리, 런타임 위협 탐지. 제로트러스트·서비스 메시(mTLS)와 결합.
VII. 결론
- 컨테이너는 패키징·이식성, 쿠버네티스는 대규모 운영 자동화를 담당한다.
- 클라우드 네이티브의 핵심 인프라이며, 보안은 이미지·설정·런타임 전 단계에서 함께 설계해야 한다.