otwld/ollama-helm

Helm chart for Ollama on Kubernetes

무엇인가요

ollama-helm 는 Kubernetes 클러스터에서 Ollama LLM 서버를 쉽게 실행할 수 있도록 해주는 Helm 차트입니다. Deployment/StatefulSet, Service, Ingress, 선택적 Knative Service, PVC 등 모든 Kubernetes 객체를 패키지화하고, CPU 전용 또는 GPU 가속, 모델 사전 다운로드, Ingress 또는 Gateway-API를 통한 노출, 사용자 정의 모델 빌드 부트스트랩 등을 가능하게 하는 구성 가능한 값을 제공합니다.

누구를 위한가요

  • 이미 Kubernetes를 사용 중이지만, 원시 매니페스트를 직접 관리하고 싶지 않은 팀.
  • GPU 지원(NVIDIA 또는 AMD)이 필요하고, 차트가 추가 플래그를 처리해 주기를 원하는 사용자.
  • Ollama를 다른 클라우드 네이티브 도구(Knative, 자동 스케일링, external-gateway 등)와 통합하고 싶은 누구나.

핵심 기능

기능 차트의 지원 방식
CPU / GPU 배포 ollama.gpu.enabled로 GPU 모드 전환; type으로 nvidia 또는 amd 선택; number로 요청할 GPU 수 설정.
모델 사전 로딩 ollama.models.pull에 컨테이너 시작 시 ollama pull할 모델 목록을 지정.
사용자 정의 모델 빌드 ollama.models.create로 Docker 유사 템플릿(예: FROM llama3.1 …) 제공 가능; ollama.models.run으로 빌드 후 모델 실행.
Ingress / Gateway-API 선택적 ingress.enabled 또는 gateway.enabled 섹션으로 Ingress 리소스 또는 Gateway-API Gateway/HttpRoute 생성.
Knative 지원 knative.enabled=true로 설정 시, 전통적인 Deployment 대신 Knative Service 생성하고, 모델 다운로드/빌드용 별도의 부트스트랩 Job 생성.
자동 스케일링 표준 HPA 필드(autoscaling.enabled, minReplicas, maxReplicas, targetCPUUtilizationPercentage) 지원.
지속성 persistentVolume.enabled로 PVC 생성; persistentVolume.existingClaim로 기존 클레임 연결 가능.
세밀한 포드 제어 affinity, hostNetwork, hostIPC, hostPID, 추가 환경 변수, 추가 인수, 임의의 추가 Kubernetes 객체 지정 가능.

빠른 시작 (CPU 전용)

helm repo add otwld https://helm.otwld.com/
helm repo update
helm install ollama otwld/ollama \
  --namespace ollama --create-namespace

차트는 기본 설정으로 Ollama를 배포하고 ClusterIP 서비스를 통해 노출합니다.

빠른 시작 (GPU + 모델 다운로드)

values.yaml 파일 생성:

ollama:
  gpu:
    enabled: true
    type: nvidia
    number: 1
  models:
    pull:
      - mistral
      - llama2

다음과 같이 설치:

helm install ollama otwld/ollama \
  --namespace ollama --create-namespace \
  -f values.yaml

포드는 NVIDIA GPU 1개를 요청하고 시작 시 두 모델을 다운로드합니다.

업데이트 방법

  1. 상류 Ollama 릴리스 노트를 확인하여 파괴적 변경 사항이 있는지 확인.
  2. 필요 시 values.yaml 조정.
  3. 다음 명령어 실행:
    helm repo update
    helm upgrade ollama otwld/ollama -n ollama -f values.yaml
    
    모델 관련 값이 변경된 경우 차트는 새로운 부트스트랩 Job을 생성합니다.

제거 방법

helm delete ollama -n ollama

차트가 생성한 모든 리소스(PVC 포함, persistentVolume.retain을 설정하지 않은 경우)가 삭제됩니다.

다음 단계

  • README에 링크된 공식 Ollama 문서(API, 클라이언트 라이브러리, LangChain 통합 등)를 읽어보세요.
  • 리포지토리의 values.yaml를 확인하여 설정 가능한 옵션 전체 목록을 확인하세요.
  • TLS가 필요하면 gateway.listener.tls를 활성화하고 인증서 참조를 제공하세요.
  • 서버리스 스타일 스케일링이 필요하면 knative.enabled를 활성화하고 Knative 기능 플래그 지침을 따르세요.

위 정보는 리포지토리의 README 및 차트 값에서 직접 가져온 것이며, 추가 기능은 가정하지 않습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트