# KServe 배포

## 1. 배포 방법

- 명령어

  ```sh
  $ helm upgrade --install kserve ../kserve \
    --namespace kserve \
    --create-namespace \
    -f custom-values.yaml
  ```

## 2. custom-values.yaml 설명

- custom-values.yaml에 정의된 값에 대한 설명입니다.

### 1) InferenceService 설정

| Name                    | 설명                  | 기본값              |
| ----------------------- | --------------------- | ------------------- |
| `inferenceService.name` | InferenceService 이름 | `huggingface-model` |

### 2) 모델 설정

| Name                                | 설명                  | 기본값                       |
| ----------------------------------- | --------------------- | ---------------------------- |
| `inferenceService.model.args[0]`    | 모델 서빙 백엔드 설정 | `--backend=vllm`             |
| `inferenceService.model.args[1]`    | 사용할 모델 이름      | `--model_name=phi-1.5`       |
| `inferenceService.model.args[2]`    | 데이터 타입 설정      | `--dtype=float16`            |
| `inferenceService.model.storageUri` | 모델 파일 저장 위치   | `pvc://model-volume/phi-1_5` |
| `inferenceService.model.image`      | 모델 서빙 이미지      | `kserve/huggingfaceserver:v0.15.0-gpu` |

### 3) 리소스 설정

| Name                                                 | 설명               | 기본값 |
| ---------------------------------------------------- | ------------------ | ------ |
| `inferenceService.resources.limits.cpu`              | CPU 리소스 제한    | `8`    |
| `inferenceService.resources.limits.memory`           | 메모리 리소스 제한 | `16Gi` |
| `inferenceService.resources.limits.nvidia.com/gpu`   | GPU 리소스 제한    | `1`    |
| `inferenceService.resources.requests.cpu`            | CPU 리소스 요청    | `4`    |
| `inferenceService.resources.requests.memory`         | 메모리 리소스 요청 | `8Gi`  |
| `inferenceService.resources.requests.nvidia.com/gpu` | GPU 리소스 요청    | `1`    |

### 4) Ingress 설정

| Name                                                 | 설명                                   | 기본값                         |
| ---------------------------------------------------- | -------------------------------------- | ------------------------------ |
| `ingress.annotations.cert-manager.io/cluster-issuer` | TLS 인증서 발급을 위한 클러스터 이슈어 | `root-ca-issuer`               |
| `ingress.hosts[0].host`                 | Ingress 호스트                 | `phi15.default.hopt.paasup.io`        |
| `ingress.tls.secretName`                             | TLS 인증서 시크릿 이름                 | `custom-kserve-tls`            |

## 3. 참고 사항

- 이 custom-values.yaml 파일은 기본 values.yaml 파일의 일부 설정만 오버라이드합니다.
- 다른 설정을 변경하려면 values.yaml 파일을 참고하여 custom-values.yaml 파일에 추가하세요.
- 모델 및 리소스 설정은 사용 환경에 맞게 조정하는 것이 좋습니다.
