Kubernetes 프로덕션 배포: 프로브·롤아웃·오토스케일링 설정법
핵심 요약
한 줄 요약: 쿠버네티스는 컨트롤 플레인 + 노드 + 파드의 운영 모델입니다. 프로브·리소스 한도·롤아웃 전략을 선언적으로 맞추지 않으면 “배포는 됐는데 서비스는 죽는” 상태가 반복됩니다.
| 리소스 | 역할 |
|---|---|
| Deployment | 레플리카·롤링 업데이트 |
| Service | 안정적인 엔드포인트 |
| Ingress | L7 라우팅·TLS 종단 |
소개
Kubernetes는 컨테이너 오케스트레이션의 사실상 표준이지만, YAML과 개념이 많아 처음엔 진입장벽이 높습니다. 우리가 프로덕션에 K8s를 도입하면서 리소스 요청/제한, 헬스체크, 롤링 업데이트를 어떻게 설정했는지 실전 예제 중심으로 정리했습니다.
기본 배포 설정
Deployment 리소스
Service 리소스
리소스 관리
Resource Requests와 Limits
Best Practices:
- Requests는 컨테이너가 보장받을 수 있는 최소 리소스
- Limits는 컨테이너가 사용할 수 있는 최대 리소스
- Requests와 Limits의 비율은 1:2 또는 1:4 권장
Resource Quota
헬스체크 설정
Liveness Probe
애플리케이션이 살아있는지 확인합니다. 실패 시 컨테이너를 재시작합니다.
Readiness Probe
애플리케이션이 트래픽을 받을 준비가 되었는지 확인합니다. 실패 시 Service에서 제거됩니다.
Startup Probe
느리게 시작하는 애플리케이션을 위한 프로브입니다.
오토스케일링
Horizontal Pod Autoscaler (HPA)
Vertical Pod Autoscaler (VPA)
배포 전략
Rolling Update
Blue-Green 배포
Canary 배포
ConfigMap과 Secret 관리
ConfigMap
Secret
네트워크 정책
모니터링과 로깅
Prometheus 메트릭 수집
로그 수집 (Fluentd)
보안 Best Practices
Pod Security Policy
RBAC 설정
결론
Kubernetes 프로덕션 배포를 성공적으로 수행하기 위한 핵심 사항:
- 적절한 리소스 관리: Requests와 Limits를 정확히 설정
- 강력한 헬스체크: Liveness, Readiness, Startup Probe 활용
- 자동 스케일링: HPA와 VPA로 리소스 최적화
- 안전한 배포: Rolling Update, Blue-Green, Canary 전략
- 보안 강화: Network Policy, RBAC, Pod Security Policy
- 모니터링: Prometheus와 로그 수집으로 가시성 확보
이러한 전략들을 조합하여 사용하면 안정적이고 확장 가능한 Kubernetes 환경을 구축할 수 있습니다.