模板市场是云容器引擎基于 Kubernetes Helm 提供的应用模板管理和应用发布的能力,您可以将 HPKV 模板(Chart)上传到模板市场,然后利用模板市场实现快速部署与后期管理,大幅简化 Kubernetes 资源的配置部署过程。
部署信息
模型:Qwen2.5-32B
推理引擎:vLLM(0.11.2)
实例规格:physical.h6ns.2xlarge11 * 1 台
支持能力
KV Cache:极速缓存 HPKV
三级缓存配置弹性存储:并行文件服务 HPFS
操作步骤
开通 GPU 物理机
您需要先创建至少一台 GPU 物理机,实例类型选择 physical.h6ns.2xlarge11,用于提供模型推理的计算能力,后续容器将纳管此节点上。
创建物理机实例的具体操作请参见创建物理机。操作系统镜像无需特别关注,后续纳管至容器平台时会自动重装。
创建云容器引擎集群
使用极速缓存 HPKV 前,需先创建云容器引擎集群并纳管 GPU 物理机节点,具体操作如下:
登录云容器引擎控制台,创建集群
创建云容器引擎的集群,注意选择智算版才能纳管 GPU 物理机,具体操作请参见订购智算集群。容器网络配置的网络插件需选择 Calico,以支持纳管 GPU 物理机节点。
说明
默认情况下 Calico 网络模式未开放,需提前提交工单申请开通白名单。
关于 Calico 网络插件的详细介绍,请参见Calico网络插件。纳管 GPU 物理机节点
在集群创建完成后,将已准备好的 GPU 物理机节点添加至集群。添加节点过程中,选择自动重装操作系统。纳管节点为容器通用操作,具体操作请参见纳管节点。
配置通过kubectl访问集群,具体操作请参见通过kubectl访问集群。
配置大页内存(HugePages)
登录 GPU 物理机节点,配置大页内存以提升缓存性能。建议将大页内存大小设置为物理内存的一半。具体配置命令示例:配置 2M 的 HugePages 大小为 256G,实时生效
echo 131072 > /proc/sys/vm/nr_hugepages持久化配置,重启后生效,在
/etc/sysctl.conf增加一行配置:vm.nr_hugepages=131072重启 kubelet
systemctl restart kubelet查看配置结果
kubectl describe nodes
创建并挂载 HPFS
极速缓存 HPKV 需使用 HPFS 并行文件系统作为三级存储层,具体操作如下:
创建文件系统
登录并行文件服务 HPFS 控制台,创建文件系统。文件系统需选择与 GPU 物理机规格相匹配的集群,否则将无法正常挂载。集群匹配关系的详细说明,请参见产品能力地图。具体创建操作请参见创建文件系统。
挂载文件系统至 GPU 物理机
将创建好的 HPFS 文件系统挂载至 GPU 物理机的/mnt/hpfs目录,以便推理服务读写缓存数据。具体挂载操作请参见HPFS-POSIX 客户端挂载。
部署 HPKV 模板
完成基础资源准备后,需将 HPKV 的容器镜像与模板文件上传至容器镜像服务与模板市场,具体操作如下:
获取 HPKV 模板文件
HPKV 模板文件为
.tgz格式的压缩包。您可通过工单申请,在问题描述中填写:并行文件服务 HPFS,申请试用 HPKV 服务。通过客户经理获取模板文件的下载链接,将 HPKV 模板文件下载至 GPU 物理机上挂载的 HPFS 文件系统目录中。
开通并配置容器镜像服务
HPKV 部署需使用容器镜像服务存放相关镜像与模板文件。
开通企业版:登录容器镜像服务控制台,开通企业版实例。具体操作请参见开通企业版实例。
创建命名空间:在实例中创建用于存放 HPKV 镜像的命名空间。具体操作请参见容器镜像命名空间。
创建镜像仓库:在命名空间下创建镜像仓库,用于存放 HPKV 容器镜像。具体操作请参见容器镜像仓库。
创建 Chart 仓库:在实例中创建 Chart 仓库,用于存放 HPKV 模板文件(
.tgz包),注意仓库名称必须和模版文件的名称一致,具体操作请参见HelmChart命名空间、HelmChart镜像仓库。
推送容器镜像至镜像仓库
导入镜像:将获取的容器镜像
tar包下载至本地。通过客户经理获取容器镜像的下载链接,将容器镜像同样下载至 GPU 物理机上挂载的 HPFS 文件系统目录中。使用 Docker 命令导入:
yum install -y docker vim /etc/docker/daemon.json { "runtimes": { "nvidia": { "args": [], "path": "nvidia-container-runtime" } }, "data-root": "/data/docker_data" } systemctl restart docker docker ps docker load -i <tar-file-path>上传镜像:登录镜像仓库,将导入的镜像推送至已创建的镜像仓库。具体操作请根据控制台指引操作或参见推送和拉取容器镜像。
推送模板文件至 Chart 仓库
登录 GPU 物理机节点:通过 SSH 登录已纳管的 GPU 物理机。
推送模板:将获取的
.tgz模板文件推送至 Chart 仓库。具体操作请根据控制台指引操作或参见推送和拉取Helm Chart。
下载模型文件
通过客户经理获取模型文件的下载链接,将模型文件同样下载至 GPU 物理机上挂载的 HPFS 文件系统目录中。
使用模板发布应用
查看模板:在容器平台的“模板市场”中,进入“我的模板”,即可看到已上传的 HPKV 模板。
获取凭证:在容器平台的“配置管理”中,进去“镜像拉取凭证”,创建镜像拉取凭证,具体操作请参见镜像拉取凭证。
发布模板:在模板包版本中点击“发布”按钮后,在右侧的弹窗中填写“实例名称”,选择待发布的“集群名称”和“命名空间”,按下面示例编辑“values”,点击“确认”完成发布。具体操作请参见模板市场。
image: repository: ds-0001-registry-shanghai15.crs-internal.ctyun.cn/XXXXXX/XXXXXX pullPolicy: IfNotPresent imagePullSecrets: name: XXXXXX commandArgs: - | /opt/start.sh 64g true && exec env VLLM_ENABLE_CTKVC=True VLLM_CTKVC_SDK_PATH=/usr/local/kvstore/lib/ VLLM_CTKVC_GRPC_PORT=50051 \ vllm serve /mnt/hpfs/modelscope/models/Qwen/Qwen2.5-32B-Instruct \ --dtype=auto \ --block-size=64 \ --served-model-name Qwen2.5-32B-Instruct \ --enable-auto-tool-choice \ --tool-call-parser hermes \ --pipeline-parallel-size 1 \ --tensor-parallel-size 4 \ --port 8000 \ --cpu-offload-gb=0 \ --enforce-eager \ --gpu-memory-utilization=0.95 \ --max-model-len=32768 \ --max-num-batched-tokens=32768 \ --disable-log-requests \ --kv-transfer-config '{"kv_connector":"KVStoreConnectorV1", "kv_role":"kv_both"}' resources: limits: hugepages2Mi: 200Gi memory: 300Gi requests: hugepages2Mi: 200Gi memory: 300Gi service: type: NodePort port: 8000 nodePort: 31800关键参数说明
参数 说明 --kv-transfer-config 启用极速缓存 HPKV 功能, kv_connector指定连接器类型,kv_role设置为kv_both表示同时支持读写缓存,无需修改--repository 需要设置为容器镜像的下载地址,参见第3步 --imagePullSecrets 需要设置为镜像拉取的凭证,参见第6步 “ /mnt/hpfs/modelscope/models/Qwen/Qwen2.5-32B-Instruct” 需要设置为模型文件下载地址,参见第5步
验证服务启动
通过
curl命令发送推理请求,验证缓存是否生效:curl http://XXX.XXX.XXX.XXX:8000/v1/modelscurl -X POST http://XXX.XXX.XXX.XXX:8000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "/home/user/models/Qwen/Qwen2.5-0.5B-Instruct/", "prompt": "请介绍一下天翼云", "max_tokens": 100 }'