TIL

1 파드 = 1 컨테이너?

하얀잔디 2026. 1. 22. 16:13

예전 NHN 기술면접때 당황했던 질문이 있다.

 

'한 파드에 여러 컨테이너가 있는 경우가 있을까요?'

 

나는 그때당시 1파드 = 1컨테이너 말고는 생각해본적이없었기에 얼버무렸다..

 

한 파드에 여러 컨테이너? 있음

쿠버네티스에서 Pod는 컨테이너의 실행 단위이지


컨테이너 1개만 올리는 단위는 아님.

실제로 한 파드에 여러 컨테이너를 두는 패턴이 존재함.

대표적인 예가 바로 사이드카(sidecar) 패턴임.

 

 

왜 굳이 한 파드에 여러 컨테이너를 두나?

핵심 이유

“같이 떠야 하고, 같이 죽어야 하고, 리소스를 공유해야 하는 경우”

Pod 안의 컨테이너들은 다음을 공유함:

  • 네트워크 (localhost)
  • 볼륨
  • 라이프사이클

그래서 논리적으로 하나의 애플리케이션처럼 동작해야 할 때
여러 컨테이너를 한 파드에 묶음.

 

 

1) 로그 수집 사이드카

  • 앱 컨테이너: 로그 파일 생성
  • 사이드카 컨테이너(fluent-bit): 로그 읽어서 외부로 전송

→ 앱이 죽으면 로그 수집도 같이 종료되는 구조
→ 앱 단위 로그 정책 적용 가능함

 

 


 

2) 프록시 / 보안 / 네트워크 보조 컨테이너

  • Envoy, Istio proxy 등
  • 인증, 트래픽 제어, TLS 처리

→ 앱은 비즈니스 로직만 담당
→ 옆 컨테이너가 통신을 보조함

 


 

3) 초기화 / 보조 작업 분리

  • 메인 앱은 건드리지 않고
  • 설정 생성, 파일 준비, 데이터 동기화 등을 옆에서 처리

(Init Container도 이 범주에 가까움)

 

 

그래서 언제 쓰는 게 맞나?

  • 항상 쓰는 구조는 아님
  • “이 기능은 앱이 아니라 앱 옆에 붙는 게 맞다” 싶을 때 사용

정리하면:

  • 기본은 1파드 1컨테이너
  • 사이드카는 예외적 선택지

 

지금이라면

기본적으로는 1파드 1컨테이너를 가져가지만,
로그 수집이나 프록시 같은 보조 역할이 필요할 경우
사이드카 패턴으로 한 파드에 여러 컨테이너를 두는 구조도 사용해봤습니다.


라고 답할것같다!