otwld/ollama-helm

Helm chart for Ollama on Kubernetes

是什么

ollama-helm 是一个 Helm 图表,可轻松在 Kubernetes 集群上运行 Ollama LLM 服务器。它打包了所有 Kubernetes 对象(Deployment/StatefulSet、Service、Ingress、可选的 Knative Service、PVC 等),并提供了一组可配置的值,让您能够以仅 CPU 或 GPU 加速方式启动 Ollama,预拉取模型,通过 Ingress 或 Gateway-API 暴露服务,甚至启动自定义模型构建。

适合谁

  • 已经使用 Kubernetes 但不想管理原始清单文件的团队。
  • 需要 GPU 支持(NVIDIA 或 AMD)并希望图表处理额外标志的用户。
  • 任何希望将 Ollama 与其他云原生工具(Knative、自动伸缩、external-gateway 等)集成的人。

核心功能

功能 图表如何支持
CPU / GPU 部署 ollama.gpu.enabled 切换 GPU 模式;type 选择 nvidiaamdnumber 设置请求的 GPU 数量。
模型预加载 ollama.models.pull 列出容器启动时要 ollama pull 的模型。
自定义模型构建 ollama.models.create 允许您提供类似 Docker 的模板(例如 FROM llama3.1 …),ollama.models.run 在创建后运行构建的模型。
Ingress / Gateway-API 可选的 ingress.enabledgateway.enabled 部分生成 Ingress 资源或 Gateway-API 的 Gateway/HttpRoute
Knative 支持 knative.enabled=true 时,图表会创建 Knative Service 而非传统 Deployment,并创建一个独立的 bootstrap Job 用于模型下载/构建。
自动伸缩 支持标准 HPA 字段(autoscaling.enabledminReplicasmaxReplicastargetCPUUtilizationPercentage)。
持久化 persistentVolume.enabled 创建 PVC;您也可以通过 persistentVolume.existingClaim 连接现有声明。
细粒度 Pod 控制 支持 affinityhostNetworkhostIPChostPID、额外环境变量、额外参数,以及任意额外的 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

Pod 将请求一个 NVIDIA GPU,并在启动时下载两个模型。

更新

  1. 检查上游 Ollama 发布说明中的破坏性变更。
  2. 如有必要,调整您的 values.yaml
  3. 运行:
    helm repo update
    helm upgrade ollama otwld/ollama -n ollama -f values.yaml
    
    如果您更改了任何与模型相关的值,图表将创建一个新的 bootstrap Job。

删除

helm delete ollama -n ollama

图表创建的所有资源(包括 PVC,除非您设置了 persistentVolume.retain)都将被删除。

下一步

  • 阅读 README 中链接的官方 Ollama 文档(API、客户端库、LangChain 集成等)。
  • 查看仓库中的 values.yaml 以获取所有可调参数的完整列表。
  • 如果需要 TLS,启用 gateway.listener.tls 并提供证书引用。
  • 如需无服务器风格的伸缩,启用 knative.enabled 并遵循 Knative 功能标志说明。

以上所有信息均直接来自仓库的 README 和图表值;未假设任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目