7. 서빙: 이미지 빌드와 API 서비스
모델 버전의 컨테이너 이미지 빌드, API 서비스 실행, 추론 콘솔 시험
필요 권한: 배포OPERATOR · ADMIN 운영OPERATOR · ADMIN
중앙 서버에서 모델을 서비스하려면 컨테이너 이미지로 빌드 필요. 빌드한 이미지는 API 서비스가 사용. 엣지 장비는 이미지가 아니라 모델 버전 파일을 내려받음(8. 엣지 배포). 운영자(operator) 또는 관리자 계정으로 진행.
1) 컨테이너 이미지 빌드
-
모델 레지스트리 → 모델 → 버전을 눌러 버전 화면 열기. 컨테이너 이미지 카드에서 이미지 빌드 클릭. 서빙 빌더를 변경하지 않으면(자동 (기본)) 테넌트 기본 변형 사용. Production 이 아니어도(Staging 이어도) 빌드 가능.
모델 버전의 컨테이너 이미지 카드: 서빙 빌더 선택과 이미지 빌드 -
상태가 빌드 중 → 준비됨으로 변경. 빌드 중 진행은 로그 보기로 확인, 실패하면 첫 오류 줄과 빌드 로그 버튼 표시.
빌드가 완료된 컨테이너 이미지: 준비됨
:::
빌드는 테넌트 네임스페이스에서 실행되는 빌더 Job 이 수행. MLflow 에 기록된 모델로 Dockerfile 을 만들고(mlflow models generate-dockerfile), BuildKit 으로 루트 권한 없이(rootless) 빌드해 플랫폼 내장 컨테이너 레지스트리에 푸시. 빌드 완료 시 알림 전송.
2) API 서비스 만들기
- 사이드바 API 서비스에서 서빙 생성 클릭. 엔드포인트 이름(Kubernetes 오브젝트 이름이 되므로 소문자·숫자·하이픈), 이미지(빌드가 완료된 이미지만 표시), Replicas, 실행 자원(파드마다 할당하는 GPU 슬롯, 0 이면 CPU) 지정 후 생성 클릭. GPU 슬롯 × Replicas 가 테넌트의 여유 슬롯을 넘으면 생성 거절.
서빙 엔드포인트 생성: 이름·이미지·Replicas·실행 자원 - 엔드포인트 화면에서 상태가 배포 중 → 연결 중 → 정상으로 변경. 아래 추론 콘솔에서 이미지를 끌어다 놓고 invocations를 누르면 검출 결과가 사진 위에 겹쳐 표시되고 원본 JSON 응답도 함께 출력.
conf같은 추론 파라미터는 슬라이더로 조정.추론 콘솔: 숫자 이미지를 업로드하고 invocations 로 호출한 결과. 분류 모델이라 예측 라벨과 신뢰도를 JSON 으로 반환(검출 모델이면 사진 위에 박스 표시)
서비스는 테넌트 네임스페이스에 Deployment + NodePort Service 로 실행되고, 추론 요청은 플랫폼 서버가 대신 전달. 브라우저나 외부 프로그램은 클러스터 주소를 알 필요 없음.
POST/api/v1/serving/endpoints/{name/proxy/invocations}
- Validation 데이터셋 (선택)을 지정하면 배포 후 그 데이터셋으로 KPI 를 한 번 간단히 점검(검증 중 상태). 기준에 미달해도 서비스는 계속 제공.
- 사용하지 않을 때는 중단(파드 0개, 포트 유지), 다시 사용할 때 재기동.
- 화면의 추론 콘솔로 호출하려면
operate권한(운영자·관리자) 필요. 위 API 는 보기(view) 권한으로도 호출 가능.
다음: 8. 엣지 배포