예전 NHN 기술면접때 당황했던 질문이 있다.
'한 파드에 여러 컨테이너가 있는 경우가 있을까요?'
나는 그때당시 1파드 = 1컨테이너 말고는 생각해본적이없었기에 얼버무렸다..
한 파드에 여러 컨테이너? 있음
쿠버네티스에서 Pod는 컨테이너의 실행 단위이지
컨테이너 1개만 올리는 단위는 아님.
실제로 한 파드에 여러 컨테이너를 두는 패턴이 존재함.
대표적인 예가 바로 사이드카(sidecar) 패턴임.
왜 굳이 한 파드에 여러 컨테이너를 두나?
핵심 이유
“같이 떠야 하고, 같이 죽어야 하고, 리소스를 공유해야 하는 경우”
Pod 안의 컨테이너들은 다음을 공유함:
- 네트워크 (localhost)
- 볼륨
- 라이프사이클
그래서 논리적으로 하나의 애플리케이션처럼 동작해야 할 때
여러 컨테이너를 한 파드에 묶음.
1) 로그 수집 사이드카
- 앱 컨테이너: 로그 파일 생성
- 사이드카 컨테이너(fluent-bit): 로그 읽어서 외부로 전송
→ 앱이 죽으면 로그 수집도 같이 종료되는 구조
→ 앱 단위 로그 정책 적용 가능함
2) 프록시 / 보안 / 네트워크 보조 컨테이너
- Envoy, Istio proxy 등
- 인증, 트래픽 제어, TLS 처리
→ 앱은 비즈니스 로직만 담당
→ 옆 컨테이너가 통신을 보조함
3) 초기화 / 보조 작업 분리
- 메인 앱은 건드리지 않고
- 설정 생성, 파일 준비, 데이터 동기화 등을 옆에서 처리
(Init Container도 이 범주에 가까움)
그래서 언제 쓰는 게 맞나?
- 항상 쓰는 구조는 아님
- “이 기능은 앱이 아니라 앱 옆에 붙는 게 맞다” 싶을 때 사용
정리하면:
- 기본은 1파드 1컨테이너
- 사이드카는 예외적 선택지
지금이라면
기본적으로는 1파드 1컨테이너를 가져가지만,
로그 수집이나 프록시 같은 보조 역할이 필요할 경우
사이드카 패턴으로 한 파드에 여러 컨테이너를 두는 구조도 사용해봤습니다.
라고 답할것같다!
'TIL' 카테고리의 다른 글
| 클러스터 여러개를 조종가능? (0) | 2026.01.26 |
|---|---|
| 클라이언트 로그를 서버에서 받아보자. 어떻게? (0) | 2026.01.23 |
| 트래픽 제한을 해보자. Nginx 개별 트래픽 속도 제한 (0) | 2026.01.21 |
| 트래픽 관리를 해보자. TC란? (0) | 2026.01.21 |
| Traefik 정리 우선 짧게 ( 외부로 트래픽 보낼때) (0) | 2026.01.14 |