
后端人工智能模型推理服务集群管理可观测性【免费下载链接】gpustackA GPU cluster manager for high-performance AI model serving (vLLM, SGLang) and on-demand SSH-accessible GPU instances.项目地址https://gitcode.com/gh_mirrors/gp/gpustack点击查看免费下载本篇技术指南聚焦于在 Kubernetes 上通过官方 Helm Chart 升级 GPUStack 的完整流程覆盖升级前的数据库备份、版本固定策略、helm upgrade实战命令、Server 与 Worker 的滚动顺序控制以及 Helm 管理范围之外的集群 Worker 如何同步升级。读者阅读完成后将能够针对 GPUStack v2.2.0 及以上的 Helm 部署制定并执行一次可回滚、可复现、版本可控的升级操作。适用范围与前置认知Helm 升级流程仅适用于GPUStack v2.2.0 及以后的版本——v2.2.0 是 GPUStack 首个可通过 Helm 部署的版本。其官方 Chart 以 OCI 制品形式发布在 Docker Hub 的oci://registry-1.docker.io/gpustack/gpustack-chartChart 版本与 GPUStack 版本一一对应例如 Chart2.2.0内置 GPUStackv2.2.0这一对应关系在 charts/gpustack-chart/Chart.yaml 中通过appVersion字段体现。在开始升级前需要明确两点实验性状态在 Kubernetes 上通过 Higress 部署与升级 GPUStack 目前仍被视为实验性功能生产环境接入前应充分评估。同一 Release 的整体性GPUStack Server 以StatefulSet部署Chart 托管的 Worker 以DaemonSet部署二者归属于同一个 Helm Release。这意味着一次helm upgrade会同时滚动升级 Server 与 Chart 内 Worker无法由 Helm 本身强制先 Server 后 Worker的顺序。升级前准备数据库备份是第一优先级官方文档对升级的强警告是升级前强烈建议先备份数据库。备份策略取决于数据库的部署形态内嵌 PostgreSQL若使用 Chart 自带的内嵌 PostgreSQL其数据存放在 Server 的 PVC 中PVC 命名为gpustack-data-dir-release-name-server-0默认 Release 名为gpustack时即gpustack-data-dir-gpustack-server-0命名规则为volumeClaimTemplate-statefulset-ordinal。该 PVC 在 Server Pod 内挂载于/var/lib/gpustack内嵌 PostgreSQL 的数据目录位于该挂载点下的postgresql/data。升级前必须对该数据完成备份。外部数据库若通过server.externalDatabaseURL使用外部 PostgreSQL 或 MySQL则遵循所用数据库厂商的备份流程即可与 GPUStack 的 PVC 无关。补充说明从 charts/gpustack-chart/templates/server-statefulset.yaml 的模板实现看Server 的数据卷默认由volumeClaimTemplates创建accessModes: [ReadWriteOnce]容量默认server.dataVolume.size默认100Gi源码模板中的兜底值为10Gi若设置了server.dataVolume.hostPath则改用宿主机路径卷而不再创建 PVC。升级前可通过kubectl get pvc -n namespace确认实际使用的卷形态。执行升级固定版本、复用 Values标准升级命令升级时始终通过--version chart-version固定目标版本确保升级落在已知、可复现的 Release 上Chart 版本与 GPUStack 版本一致如2.2.0。同时复用安装时提供的 Values既可以像安装时一样再次传入-f values.yaml以及必要的--set也可以使用--reuse-values保留此前已应用的 Valueshelm upgrade gpustack oci://registry-1.docker.io/gpustack/gpustack-chart \ --namespace gpustack-system \ --version chart-version \ -f values.yaml为什么必须指定 --version若省略--versionHelm 会自动解析最新的稳定 Chart 版本并跳过 dev/pre-release 构建。对升级场景而言这存在明显风险你无法控制最终落在哪个版本上。因此官方明确要求升级时始终显式指定--version以精确瞄准特定 Release。升级期间的 Values 演进建议升级时对 Values 的处理需要兼顾复现与演进两个目标首次升级建议沿用-f values.yaml传入与安装时完全一致的 Values 文件配合--version固定目标版本缩小升级变量若安装后从未通过--set调整参数且希望沿用上次 Helm 记录的 Values可使用--reuse-values需要同时调整参数时用-f或--set传入新 Values此时新值会覆盖 Release 中已有的配置。值得注意的是Chart 对部分关键 Values 有强制约束升级前应核对否则渲染阶段就会失败而不是安装到故障集群这些约束由 charts/gpustack-chart/templates/_helper.tpl 与 charts/gpustack-chart/templates/validate.yaml 实现并有 tests/charts/test_chart_render.py 中的TestGuards系列测试覆盖image.tag为必填模板中通过required强制要求显式声明 GPUStack 镜像 Tag避免检出checkout安装时模板与镜像世代错配发布版 Chart 已自带该值server.ingress.tls.cert与server.ingress.tls.key必须同时设置或同时为空server.replicas 1时server.externalDatabaseURL为必填当前 Chart 的 Server 仍以单副本为设计基线多副本场景需要外部数据库支持worker.cpuEnabledfalse时worker.gpuVendors必须至少包含一个受支持的 GPU 厂商否则整个 Release 将不渲染任何 Worker DaemonSet安装会被拒绝。Server 与 Worker 的滚动顺序由于 GPUStack ServerStatefulSet与 Chart 托管的 WorkerDaemonSet属于同一个 Release单次helm upgrade会同时触发两者的镜像滚动先 Server、后 Worker的顺序无法由一次 Helm 操作强制实现。如果环境中严格要求顺序例如先确认控制面升级成功、再允许 Worker 滚动官方给出的做法是在允许 Worker Pod 滚动之前先等待 Server Pod 就绪kubectl rollout status statefulset/release-name-server -n gpustack-system命令执行完毕Server 完成滚动并进入 Ready后再观察 Chart 内 Worker DaemonSet 的滚动情况。从 charts/gpustack-chart/templates/worker-daemonset.yaml 的模板可以看出Worker DaemonSet 默认采用滚动更新策略maxSurge: 0、maxUnavailable: 1即升级过程中最多允许一个 Worker 临时不可用、且不会超额拉起新 Pod属于保守的滚动方式。超出 Chart 管理范围的 Worker 怎么办通过 GPUStack 集群功能例如在 UI 中添加的 Docker 集群或 Kubernetes 集群注册的 Worker不受本 Helm Release 管理不能随helm upgrade升级。这类 Worker 必须按照 集群部署升级指南 的步骤单独升级其核心原则是先升级 GPUStack Server再升级集群部署Worker 必须与 Server 保持同一版本不得将main开发版或 RC候选版镜像与稳定版 Server 混用Docker 集群的 Worker 以相同参数重建容器docker pull新镜像后docker stop/docker rm/docker runKubernetes 集群的 Worker 通过 UI 重新生成并Register Cluster的 Run command 重新应用清单由 Operator 滚动 DaemonSet。小技巧可以从 GPUStack UI 的Clusters页面打开目标集群的Add Worker步骤复制针对目标版本生成的最新Run command确保参数与挂载与当前 Worker 完全一致。升级后的验证完成helm upgrade后建议按以下顺序验证Server 滚动完成kubectl rollout status statefulset/gpustack-server -n gpustack-system返回成功Pod 全部就绪kubectl get pods -n gpustack-system中 Server 与各 Worker DaemonSet Pod 均进入Running/ReadyChart 内 Worker 就绪Chart 托管的 Worker默认worker.enabledfalse启用后为release-worker及每个 GPU 厂商对应的release-worker-vendor完成滚动集群内 Worker 就绪若存在 Chart 外注册的集群确认其 Worker Pod 达到Ready后该集群即运行在新版本上。附升级相关的关键 Chart 参数速查升级过程中最常涉及的参数如下完整与权威的清单见 charts/gpustack-chart/values.yaml 与 charts/gpustack-chart/README.md参数默认值说明image.tagnull必填GPUStack 镜像 Tag发布版 Chart 已内置检出安装必须显式声明server.externalDatabaseURLnull外部数据库连接串PostgreSQL 或 MySQL生产环境推荐配置server.dataVolume.hostPathnull设置后改用宿主机路径卷否则使用 PVCserver.dataVolume.size100GiServer 数据卷PVC容量server.ingress.hostnamenullServer 的 Ingress 主机名server.ingress.tls.cert/server.ingress.tls.keynullIngress TLS 证书/私钥PEM两者同时设置时启用 HTTPSworker.enabledfalse是否渲染 Worker DaemonSetworker.gpuVendors[nvidia]GPU 厂商列表每个厂商渲染一个带-vendor后缀的 DaemonSet另加 CPU DaemonSetworker.cpuEnabledtrue是否渲染 CPU Worker DaemonSet设为false时必须至少指定一个 GPU 厂商gateway.ingressClassnamehigressHigress IngressClass 名称检测到存在时启用集群内网关模式higress-core.enabledtrue是否随 GPUStack 部署内置 Higress 网关集群已有 Higress 时设为falseglobal.hubdocker.io容器镜像仓库地址私有/离线镜像仓库场景通过它统一覆盖所有镜像global.imagePullSecrets[gpustack-image-pull-secret]挂载到所有 Pod 的镜像拉取 Secret可替换为已有 SecretregistrationTokennullWorker 注册令牌为null时首次安装生成随机令牌并在升级时复用与升级强相关的两个参数细节registrationToken的跨升级复用令牌为null时Chart 在首次安装时生成随机 32 字符令牌并在后续升级中自动复用该行为在 charts/gpustack-chart/templates/registration-token.yaml 中实现保证升级不会使既有 Worker 因令牌变化而失联。global.hub的全局传播升级到私有/镜像仓库部署时global.hub通过 Helm 全局值传播机制覆盖 Server、Worker、higress-plugins 以及内置 higress-core 的全部镜像同时它以GPUSTACK_SYSTEM_DEFAULT_CONTAINER_REGISTRY环境变量传入 Server见 charts/gpustack-chart/templates/server-statefulset.yaml确保推理引擎镜像如 vLLM、llama.cpp也来自同一仓库。总结一次成功的 GPUStack Helm 升级可以归纳为四步备份数据库 → 固定--version并复用 Values 执行helm upgrade→ 按需等待 Server 先就绪再放行 Worker 滚动 → 验证 Server 与两类 WorkerChart 内与集群注册全部就绪。在整个过程中版本可控始终指定--version、数据可恢复升级前备份 PVC 或外部数据库、范围清晰Chart 内 Worker 随 Release 滚动、集群注册 Worker 走 集群部署升级指南是三条贯穿始终的主线。赞分享后端人工智能模型推理服务集群管理可观测性【免费下载链接】gpustackA GPU cluster manager for high-performance AI model serving (vLLM, SGLang) and on-demand SSH-accessible GPU instances.项目地址https://gitcode.com/gh_mirrors/gp/gpustack点击查看免费下载相关推荐ZenML Server 升级完全指南Docker 与 Helm 部署的版本升级实践ZenML Server 升级完全指南Docker 与 Helm 部署的版本升级实践 升级 ZenML Server 是每个自托管团队迟早都要面对的运维动作MLOps机器学习后端工作流自动化AI AgentLabel Studio Kubernetes 部署实战基于 Helm 3 的安装、升级与运维指南Label Studio Kubernetes 部署实战基于 Helm 3 的安装、升级与运维指南 导读 本文以 Label Studio 开源仓库的官方数据标注人工智能Apache Pulsar Helm 版本升级实战指南使用 helm upgrade 安全滚动升级集群Apache Pulsar Helm 版本升级实战指南使用 helm upgrade 安全滚动升级集群 Apache Pulsar 官方 Helm chart消息队列后端流处理上一篇Maker.js 零基础部署实战3 条命令跑起你的 CNC 矢量绘图工具下一篇litellm 语音交互实战从麦克风到扬声器只需要 3 种 WebSocket 消息创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考