1. Deployment (애플리케이션의 상태 관리자)
가장 기본이 되는 리소스로, 컨테이너를 어떻게, 몇 개 띄울지 정의합니다.
- 역할: 파드(Pod)의 개수를 유지하고, 업데이트(롤링 업데이트)나 복구(Self-healing)를 담당합니다.
- 실무적 의미: "vLLM 엔진 이미지를 사용해 Blackwell 노드에 파드를 2개 띄워라. 만약 하나가 죽으면 즉시 새로 살려내라"는 지시를 수행합니다.
2. Service (내부 로드밸런서 및 고정 주소)
파드는 죽고 살아날 때마다 IP 주소가 계속 바뀝니다. 서비스는 이 변덕스러운 파드들에게 고정된 이름과 주소를 제공합니다.
- 역할: 여러 개의 파드를 하나로 묶어 단일 진입점(IP/도메인)을 제공하고, 트래픽을 각 파드로 분산(로드밸런싱)합니다.
- 실무적 의미: 외부나 다른 서비스가 vllm-service:8000이라는 주소만 알면, 뒤에 있는 파드가 몇 번을 바뀌어도 항상 연결되도록 보장합니다.
3. ConfigMap & Secret (설정 및 보안 데이터)
애플리케이션 코드와 **설정값(환경변수 등)**을 분리하기 위해 사용합니다.
- ConfigMap: 일반적인 설정값(모델 경로, 로그 레벨 등)을 저장합니다.
- Secret: 보안이 중요한 데이터(HuggingFace 토큰, DB 비밀번호, 인증서 등)를 암호화하여 저장합니다.
- 실무적 의미: values.yaml에 적은 hf_token이나 모델 이름이 이 리소스를 통해 컨테이너 내부 환경변수로 주입됩니다.
4. PVC (PersistentVolumeClaim - 영구 저장소 요청서)
컨테이너는 삭제되면 내부 데이터도 사라집니다. 모델 가중치처럼 무거운 데이터를 보존하기 위해 외부 스토리지를 연결합니다.
- 역할: "나에게 50Gi 용량의 저장 공간을 할당해달라"는 요청서입니다. 실제 스토리지(Ceph, NFS 등)와 파드를 연결해 줍니다.
- 실무적 의미: Llama-3 모델을 한 번 다운로드하면 파드가 재시작되어도 다시 받지 않고 그대로 쓸 수 있게 해주는 '외장 하드' 역할입니다.
요약: 서비스 배포의 구조도
| 리소스 명칭 | 역할 요약 | 비유 |
| Deployment | 실행 및 복구 | 현장 작업반장 (인원 관리) |
| Service | 네트워크 통로 | 대표 전화번호 (연락처 고정) |
| ConfigMap / Secret | 환경 설정 | 작업 지시서 및 열쇠 |
| PVC | 데이터 보존 | 공용 창고 (데이터 저장) |
'Kubernetes' 카테고리의 다른 글
| 쿠버네티스 API 종류 (0) | 2026.04.23 |
|---|---|
| Kubernetes 클러스터 접속 설정 파일 (Kubeconfig) (0) | 2026.04.23 |
| Kubernetes : PV, PVC (0) | 2024.12.24 |
| Kubernetes : MySQL 컨테이너의 데이터 → 호스트 디렉토리에 저장 (0) | 2024.12.24 |
| Kubernetes : 호스트 머신 디렉토리 → Pod 내 컨테이너 공유 (0) | 2024.12.24 |