서비스 개발자를 위한 컨테이너 뽀개기 (a.k.a 컨테이너 인터널)
두줄요약
검색 서비스 컨테이너화 경험을 바탕으로 컨테이너의 격리·패키징·리소스 제한 원리를 소개했습니다. VM과의 차이 및 Kubernetes 기반 오케스트레이션의 역할을 설명했습니다.
구조와 흐름
- 호스트 커널을 공유하며 프로세스 실행 환경을 격리하고 CPU·메모리·네트워크 리소스를 제한하는 컨테이너
- 실행 파일·의존 라이브러리·설정을 이미지로 패키징해 서버 환경 차이를 줄이는 배포 방식
- 명세와 컨트롤러 기반으로 컨테이너 배치·상태 관리·모니터링을 자동화하는 Kubernetes 오케스트레이션
선택 이유
- 검색 서비스 증가에 대응하기 위한 컴포넌트 배치 자동화와 유연한 저장 방식·리소스 활용 요구
- 호스트 OS를 사용해 VM보다 가벼운 구조와 애플리케이션 단위 패키징 가능성
- 서비스별 실행 환경 격리와 자원 경합 방지를 통한 운영 단순화
트레이드오프
- VM의 Guest OS 기반 강한 격리와 다양한 OS 구동 가능성
- 컨테이너의 호스트 커널 공유 방식, 빠른 실행과 작은 오버헤드
- Mac·Windows에서의 Linux VM 기반 컨테이너 구동
적용해볼 점
- 컨테이너 도입 전 물리 서버 대비 성능·안정성·제약 요소 검증
- 서비스 특성과 컨테이너 내부 구조·가상 네트워크·오케스트레이션을 함께 이해하는 운영 관점
- 마운트 네임스페이스, 오버레이 파일시스템, 네트워크 네임스페이스, Cgroups 기반 핸즈온 학습







