우리가 개발한 AI 서비스를 온프레미스 환경에서 안정적으로 운영하고 GPU 자원을 효율적으로 사용하기 위해,
전체 인프라의 기반으로 OpenShift를 도입함
본격적으로 구축 과정에 들어가기 전에, 이번 글에서는 OpenShift가 어떤 플랫폼인지, 그리고 왜 내부 클라우드처럼 동작할 수 있는지 핵심 개념부터 간단히 정리해봄
OpenShift : GPU 서버를 “회사 내부 클라우드”처럼 만들어주는 플랫폼
- 쿠버네티스(Kubernetes)를 기반으로 한 엔터프라이즈 플랫폼
- 단순히 컨테이너를 띄우는 수준을 넘어서, 네트워크·스토리지·보안·모니터링·UI·자동복구까지 완성된 패키지를 제공
- 개발자가 복잡한 서버 관리 대신, 바로 모델 실행·파이프라인 개발·GPU 활용에 집중할 수 있게 해 줌
➡️ 즉, 오픈쉬프트는 GPU가 장착된 서버를 "내부 프라이빗 클라우드 + 자동화된 개발 운영 환경"으로 만들어주는 플랫폼
■ Pod - 가장 작은 실행 단위
- OpenShift(=Kubernetes)에서 실제로 애플리케이션이 실행되는 최소 단위
- 파드 내부에는 1개 이상의 컨테이너가 실행 가능
| # 파드 목록 확인 $ oc get pods |
특징:
- 파드는 언제든 만들어지고 삭제됨 (일시적 프로세스 개념)
■ Namespace - 리소스를 구분하는 "프로젝트 공간"
- 여러 프로젝트를 논리적으로 분리하기 위한 격리 공간
- 프로젝트마다 다른 파드, 서비스, 네트워크 정책을 가짐
| # 네임스페이스 목록 확인 $ oc get namespaces $ oc get projects |
■ Deployment - 파드를 자동 복구/확장하며 관리하는 컨트롤
- 파드를 원하는 개수(replicas)만큼 유지하며 자동으로 관리
| replicas: 3 → 동일한 Pod를 3개 실행하고 장애 발생 시 자동 복구 |
특징:
- 파드가 죽으면 자동으로 새로 생성됨 (Self-healing)
- replicas 설정으로 수평 확장 가능
■ Service - Pod 접근을 위한 네트워크 관리
- Pod는 IP가 고정되지 않기 때문에, 외부 또는 내부 트래픽을 안정적으로 연결하기 위해 필요
- 서비스는 특정 포트를 열고 뒤에 있는 Pod로 트래픽을 전달
| <서비스 타입> ✔ ClusterIP (기본) : 내부 네트워크에서만 접근 가능, 외부에서는 직접 접근 불가➡️ 백엔드 서비스 내부 통신에 사용됨 ✔ NodePort : 노드(서버)의 특정 포트를 외부로 열어 접근 가능 ➡️ 개발/테스트용으로 종종 사용됨 ✔ LoadBalancer : 클라우드(AWS/GCP 등)의 외부 LB를 자동 연결, 외부에서 접근해야 하는 서비스에 사용 ➡️ 프론트엔드, API 서버에 적합 |
■ PV/PVC – 데이터를 지속적으로 보관하기 위한 스토리지
| ✔ PV (Persistent Volume) : 실제 스토리지 지원(물리적 저장소) ✔ PVC (Persistent Volume Claim) : 파드가 "나 이만큼 저장소 필요해!" 라고 요청하는 것, PVC가 PV를 바인딩 하여 사용 가능해짐 |
➡️ Pod는 일회용이므로 데이터는 반드시 PV/PVC에 저장해야 함 !
■ 요약

'Study > Artificial Intelligence' 카테고리의 다른 글
| OpenShift 개발 환경 구조 (0) | 2025.12.11 |
|---|
댓글