通过 CRD 部署
部署模型
- 创建一个
Model类型的 CRD 资源
什么是 CRD?
CRD 是 Kubernetes 的自定义资源定义(Custom Resource Definition)的缩写,它允许用户自定义资源类型,从而扩展 Kubernetes API。
名为 Operator 的服务可以管理这些自定义资源,以便在 Kubernetes 集群中部署、管理和监控应用程序。
Ollama Operator 就是通过版本号为 ollama.ayaka.io/v1,类型为 Model 的 CRD 来管理大型语言模型的部署和运行的。
yaml
apiVersion: ollama.ayaka.io/v1
kind: Model
metadata:
name: phi
spec:
image: phi使用了 kind 作为集群吗?
kind 默认配置的 StorageClass 是 standard,并且仅适用于 ReadWriteOnce 访问模式,因此,如果您需要使用 kind 运行这个 Operator 并部署模型,您应该在 Model CRD 中使用 accessMode:ReadWriteOnce 指定 persistentVolume:
yaml
apiVersion: ollama.ayaka.io/v1
kind: Model
metadata:
name: phi
spec:
image: phi
persistentVolume:
accessMode: ReadWriteOnce复制以下命令以创建一个名为 phi 的 Model CRD:
shell
cat <<EOF >> ollama-model-phi.yaml
apiVersion: ollama.ayaka.io/v1
kind: Model
metadata:
name: phi
spec:
image: phi
persistentVolume:
accessMode: ReadWriteOnce
EOF或者您可以创建自己的文件:
yaml
apiVersion: ollama.ayaka.io/v1
kind: Model
metadata:
name: phi
spec:
image: phi- 将
ModelCRD 应用到 Kubernetes 集群:
shell
kubectl apply -f ollama-model-phi.yaml- 等待
ModelCRD 就绪:
shell
kubectl wait --for=jsonpath='{.status.readyReplicas}'=1 deployment/ollama-model-phi- 准备就绪!现在让我们转发访问模型的端口到本地:
shell
kubectl port-forward svc/ollama-model-phi ollama- 直接与模型交互:
shell
ollama run phi或者使用 curl 连接到与 OpenAI API 兼容的接口:
shell
curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "phi",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'