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 选择 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 时,图表会创建 Knative Service 而非传统 Deployment,并创建一个独立的 bootstrap Job 用于模型下载/构建。 |
| 自动伸缩 | 支持标准 HPA 字段(autoscaling.enabled、minReplicas、maxReplicas、targetCPUUtilizationPercentage)。 |
| 持久化 | persistentVolume.enabled 创建 PVC;您也可以通过 persistentVolume.existingClaim 连接现有声明。 |
| 细粒度 Pod 控制 | 支持 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
Pod 将请求一个 NVIDIA GPU,并在启动时下载两个模型。
更新
- 检查上游 Ollama 发布说明中的破坏性变更。
- 如有必要,调整您的
values.yaml。 - 运行:
如果您更改了任何与模型相关的值,图表将创建一个新的 bootstrap Job。helm repo update helm upgrade ollama otwld/ollama -n ollama -f values.yaml
删除
helm delete ollama -n ollama
图表创建的所有资源(包括 PVC,除非您设置了 persistentVolume.retain)都将被删除。
下一步
- 阅读 README 中链接的官方 Ollama 文档(API、客户端库、LangChain 集成等)。
- 查看仓库中的
values.yaml以获取所有可调参数的完整列表。 - 如果需要 TLS,启用
gateway.listener.tls并提供证书引用。 - 如需无服务器风格的伸缩,启用
knative.enabled并遵循 Knative 功能标志说明。
以上所有信息均直接来自仓库的 README 和图表值;未假设任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目