安装 Llama Stack
本文档介绍如何使用 Llama Stack operator 在 Kubernetes 上安装并部署 Llama Stack Server。
目录
上传 operator安装 operator部署 Llama Stack Server配置 PostgreSQL 存储在 KServe 上使用 vLLM 进行 tool calling启用 PGVector Vector Store启用 Milvus Vector StoreHugging Face 访问 embedding 模型上传 operator
下载 Llama Stack operator 安装文件(例如,llama-stack-operator.alpha.ALL.xxxx.tgz)。
使用 violet 命令发布到平台仓库:
安装 operator
-
进入 Alauda Container Platform 中的
管理员视图。 -
在左侧导航中,选择
Marketplace/Operator Hub。 -
在右侧图表中,找到
Alauda build of Llama Stack,然后单击Install。 -
保持所有参数为默认值,完成安装。
部署 Llama Stack Server
在 operator 安装完成后,通过创建一个 LlamaStackDistribution 自定义资源来部署 Llama Stack Server:
注意:请提前准备以下内容;否则 distribution 可能无法就绪:
- Inference URL:
VLLM_URL必须指向一个 vLLM OpenAI-compatible 的 HTTP 基础 URL(例如集群内的 vLLM 或 KServe InferenceService),并且该 URL 提供目标模型服务。- Secret(可选):只有在 vLLM 端点需要认证时,才需要
VLLM_API_TOKEN。如果 vLLM 没有认证,请不要设置它。需要时,请在相同命名空间中创建 Secret,并在containerSpec.env中引用它(请参见下方 manifest 中的注释示例)。- Storage Class:确保集群中存在
defaultStorage Class;否则 PVC 无法绑定,资源也不会就绪。- PostgreSQL 存储:此版本中的
starterdistribution 使用 PostgreSQL 作为 Llama Stack 的持久化存储。部署前,请为 server pod 配置POSTGRES_*环境变量。- PGVector(可选):若要使用
provider_id="pgvector"的vector_stores,请为 server pod 提供PGVECTOR_*环境变量。ACP 提供的 PostgreSQL 可以直接使用,因为它已包含pgvector扩展。- Milvus(可选):若要使用
provider_id="milvus-remote"的vector_stores,请提供MILVUS_ENDPOINT,并在启用认证时提供MILVUS_TOKEN。将MILVUS_CONSISTENCY_LEVEL设置为有效的 Milvus 一致性级别,例如Strong。- Embedding 模型下载:Llama Stack 为 vector-store 使用提供了默认的 embedding 模型配置,但模型制品会在首次使用时从 Hugging Face 下载。如果需要镜像或代理,请配置
HF_ENDPOINT。对于完全离线的环境,请在首次 vector-store 请求之前,将模型文件预下载到 server PVC 中。
部署完成后,Llama Stack Server 将在集群内可用。访问 URL 会显示在 status.serviceURL 中,例如:
配置 PostgreSQL 存储
此版本使用的 starter distribution 镜像要求 PostgreSQL 用于 Llama Stack 持久化。请在 LlamaStackDistribution 中配置以下 server 环境变量:
POSTGRES_HOSTPOSTGRES_PORTPOSTGRES_DBPOSTGRES_USERPOSTGRES_PASSWORD
这些设置用于 Llama Stack server 状态。它们与 PGVECTOR_* 不同,后者仅用于配置可选的 PGVector vector-store provider。只要具备所需的数据库、凭据和 pgvector 扩展,就可以将同一个 PostgreSQL 实例同时用于这两种用途。
在 KServe 上使用 vLLM 进行 tool calling
以下内容适用于 KServe 上的 vLLM predictor,不适用于 LlamaStackDistribution manifest。对于使用 tools(客户端工具或 MCP)的 agent 流程,vLLM 进程必须暴露 tool-call 支持。请根据上游 vLLM 的要求为 predictor container 添加 args,例如:
请根据 所服务的模型 以及该模型家族对应的 vLLM 文档,选择 --tool-call-parser(以及任何相关标志)。
启用 PGVector Vector Store
当 server 上设置了 ENABLE_PGVECTOR=true 时,Llama Stack 可以通过客户端 API 使用 provider_id="pgvector" 创建 vector store。
建议准备步骤:
- 准备一个 ACP PostgreSQL 实例,并记录其服务名、数据库名、用户名和密码。
- 通过
PGVECTOR_HOST、PGVECTOR_PORT、PGVECTOR_DB、PGVECTOR_USER和PGVECTOR_PASSWORD,将数据库连接暴露给LlamaStackDistribution。 - 设置
ENABLE_SENTENCE_TRANSFORMERS=true,并确保默认 embedding 模型文件可在首次使用时获取。 - 如果集群使用 Hugging Face 镜像或代理,请相应设置
HF_ENDPOINT。 - 如果集群完全离线,请将 embedding 模型文件预下载到 server PVC 中,并启用与离线缓存相关的环境变量。
当 distribution 就绪后,可以在 Quickstart notebook 中使用 PGVector 部分验证配置。
启用 Milvus Vector Store
当 server 上设置了 MILVUS_ENDPOINT 时,Llama Stack 可以通过客户端 API 使用 provider_id="milvus-remote" 创建 vector store。
建议准备步骤:
- 准备一个从 Llama Stack Server pod 可访问的 Milvus 端点。
MILVUS_ENDPOINT必须包含 scheme,即http://或https://,并且要包含 Milvus 服务所需的端口。 - 通过
MILVUS_ENDPOINT将 Milvus 连接暴露给LlamaStackDistribution。 - 如果启用了 Milvus 认证,请从 Secret 中设置
MILVUS_TOKEN。 - 将
MILVUS_CONSISTENCY_LEVEL设置为字符串值,例如Strong;Milvus provider 需要此字段。 - 设置
ENABLE_SENTENCE_TRANSFORMERS=true,并确保 embedding 模型文件可以被获取,或者已存在于 server PVC 中。
当 distribution 就绪后,可以在 Quickstart notebook 中使用 Milvus 部分验证配置。客户端会使用 provider_id="milvus-remote" 创建 vector store,并在 extra_body 中传入所选的 embedding model id 以及 embedding 维度。
Hugging Face 访问 embedding 模型
Llama Stack 在 vector-store 操作中使用默认的 embedding 模型。首次使用时,server 会将模型文件从 Hugging Face 下载到本地缓存。
推荐的缓存路径:
/home/lls/.lls/huggingface/hub
常见部署模式:
-
镜像或代理访问:
-
完全离线访问:
将所需的模型文件预下载到基于 PVC 的缓存目录
/home/lls/.lls/huggingface/hub,然后设置:
如果缓存路径已正确预填充,server 就可以在运行时创建基于 PGVector 或基于 Milvus 的 vector store,而无需下载模型制品。