728x90
서비스를 배포할 때, 전통적인 VM(Virtual Machine)과 현대적인 컨테이너(Container)는 운영 방식과 특징이 다릅니다.
1. 아키텍처 비교
VM (Virtual Machine)
Host OS
└── Hypervisor
└── Guest OS- 각각의 VM은 독립된 Guest OS를 가집니다.
- 장점: Host OS와 다른 OS도 사용할 수 있음 (예: 리눅스에서 윈도우 VM 실행 가능)
- 단점: OS마다 메모리/CPU 자원을 독립적으로 사용하므로 리소스 오버헤드가 큼
Container
Host OS
└── Container Engine (Docker 등)
└── Container- 컨테이너는 Host OS를 공유하며, 가상화 레이어가 거의 없음
- 주요 기술:
- Namespace: mnt, pid, ipc, uts, user → 컨테이너 격리
- cgroups: memory, CPU, I/O, network → 리소스 제한
- 장점: VM보다 가볍고 빠름, 빠른 배포 가능
- 단점: Host OS와 동일한 OS만 사용 가능
- 보안: 하나의 컨테이너가 뚫리면 같은 Host의 다른 컨테이너도 영향을 받을 수 있음
2. 쿠버네티스와 Pod
- Pod: 쿠버네티스에서의 최소 배포 단위
- 구성:
- 하나의 Pod에는 하나 이상의 컨테이너가 포함될 수 있음
- 컨테이너마다 서로 다른 언어, 라이브러리 등을 사용할 수 있음
기존 VM 방식 vs 쿠버네티스
- VM 방식:
- 모듈 하나가 자원을 많이 쓰면, 같은 서비스라도 VM을 새로 띄워야 함
- 쿠버네티스:
- 모듈을 컨테이너 단위로 구분하고, 필요에 따라 Pod를 선택적으로 확장 가능
- 예: 특정 모듈만 확장하여 자원을 효율적으로 사용 가능
결론
비교 항목VMContainer
| OS | Guest OS 독립 | Host OS 공유 |
|---|---|---|
| 리소스 | 무겁고 느림 | 가볍고 빠름 |
| OS 다양성 | 가능 (Linux ↔ Windows) | 불가능 (Host OS와 동일) |
| 격리 | 강력, 보안 우수 | 상대적으로 낮음, Host 공유 |
| 배포 단위 | VM 단위 | 컨테이너 → Pod 단위 |
| 확장성 | VM 단위 | 컨테이너/Pod 단위 선택적 확장 가능 |
728x90
'k8s' 카테고리의 다른 글
| kubernetes 시작하기 (3) | 2025.10.02 |
|---|---|
| kubernetes를 사용하는 이유 (0) | 2025.10.01 |
댓글