gpustack start
运行 GPUStack Server 或 Worker。
CLI 参数位置
在 Docker 中,docker run 实际执行的命令由 ENTRYPOINT 和 COMMAND 组成。
gpustack/gpustack 镜像设置了 ENTRYPOINT,可简单理解为 (或视为等同于):
1 | |
因此,gpustack start 的 CLI 参数必须放在镜像名称之后, 即 docker run 命令的末尾,而不是作为 docker run 自身的选项。
示例:
1 | |
在 Kubernetes 中,应使用容器配置中的 args 字段 指定这些参数。
配置
通用选项
参数 | 默认值 | 说明 |
|---|---|---|
--advertise-address value | (empty) | 对外访问使用的 IP 地址。 未设置时,系统自动检测合适的本机 IP 地址。 |
--config-file value | (empty) | YAML 配置文件路径。 |
-d value, --debug value | False | 启用调试模式。Windows 不支持短参数 -d,因为 PowerShell 已将其保留用于 CommonParameters。 |
--data-dir value | (empty) | 数据存储目录。默认值取决于操作系统。 |
--cache-dir value | (empty) | 缓存(例如模型文件)存储目录。默认为 |
--huggingface-token value | (empty) | 用于 Hugging Face Hub 身份认证的用户访问 Token,也可通过 HF_TOKEN 环境变量配置。 |
--insecure-tls | False | 跳过 GPUStack 自身 HTTPS 连接的 TLS 验证(Worker 到 Server、Server 到外部身份认证 IdP)。适用于无法通过其他方式验证 Server 证书的可信网络。 |
--bin-dir value | (empty) | 额外二进制文件的存储目录,例如带版本的后端可执行文件。 |
--pipx-path value | (empty) | pipx 可执行文件路径,用于安装带版本的后端。 |
--system-default-container-registry value | docker.io | GPUStack 拉取系统镜像和推理镜像的默认容器镜像仓库。 所有 GPUStack 业务镜像应放在 gpustack 命名空间下;如果需要多级命名空间,应将 gpustack 保留为最后一级,例如 awesome.com/amazing-group/amazing-subgroup/gpustack。然后将此参数(或 Server/Worker 的 system_default_container_registry 配置键,或 GPUSTACK_SYSTEM_DEFAULT_CONTAINER_REGISTRY 环境变量)设置为父路径,例如 awesome.com/amazing-group/amazing-subgroup。如果镜像无法放在 gpustack 命名空间下(例如使用 gpustack-ai),请相应调整 --image-repo 和 --benchmark-image-repo。 |
--image-repo value | gpustack/gpustack | 覆盖 GPUStack 容器的默认镜像仓库。值中不要包含标签,GPUStack 会自动追加版本标签。 如果镜像 gpustack/gpustack:<tag> 位于 gpustack 命名空间之外,例如 awesome.com/amazing-group/amazing-subgroup/gpustack-ai/gpustack:<tag>,请先将 --system-default-container-registry=awesome.com/amazing-group/amazing-subgroup 指向包含父命名空间的镜像仓库,再将此参数(或 Server/Worker 的 image_repo 配置键,或 GPUSTACK_IMAGE_REPO 环境变量)设置为 gpustack-ai/gpustack。 |
--gateway-mode value | auto | 网关运行模式。可选值:embedded、in-cluster、external、disabled 或 auto(默认)。 |
--gateway-kubeconfig value | (empty) | 网关使用的 kubeconfig 文件路径。仅对 external gateway-mode 有效。 |
--gateway-namespace value | higress-system | 网关组件部署所在的命名空间。 |
--service-discovery-name value | (empty) | DNS 中的服务发现服务名称。仅在使用服务发现部署到 Kubernetes 时有效。 |
--namespace value | (empty) | GPUStack 部署网关路由规则和模型实例所使用的 Kubernetes 命名空间。 |
Server 选项
参数 | 默认值 | 说明 |
|---|---|---|
--port value | 80 | Server 监听端口。 |
--tls-port value | 443 | TLS Server 监听端口。 |
--api-port value | 30080 | GPUStack API Server 监听端口。 |
--proxy-port value | 30079 | GPUStack 代理 Server 监听端口。 |
--database-port value | 5432 | 内置 PostgreSQL 数据库端口。 |
--metrics-port value | 10161 | Server 指标暴露端口。 |
--disable-metrics | False | 禁用 Server 指标。 |
--disable-worker | (empty) | (DEPRECATED) 禁用 GPUStack Server 的内置 Worker。新安装默认不包含内置 Worker,如有需要,可通过 '--enable-worker' 启用。若两个参数均未设置,为保持向后兼容,v2.0.1 之前的旧安装默认启用内置 Worker。 |
--enable-worker | False | 启用 GPUStack Server 的内置 Worker。 |
--bootstrap-password value | Auto-generated. | 默认管理员用户的初始密码。 |
--database-url value | Embedded PostgreSQL. | 数据库 URL。支持 PostgreSQL 13.0+、MySQL 8.0.36+,以及 openGauss(postgresql:// 协议)、OceanBase(mysql:// 协议)等兼容数据库。示例:postgresql://username:password@host:port/dbname 或 mysql://username:password@host:port/dbname |
--redis-url value | None | 外部 Redis URL,用于需要共享快速状态的功能(LB 插件的共享状态后端)。格式:redis://host[:port][/db]。不允许包含凭据(凭据会写入网关 CR),且不支持 TLS(rediss://)。 |
--ssl-keyfile value | (empty) | SSL 密钥文件路径。 |
--ssl-certfile value | (empty) | SSL 证书文件路径。 |
--ssl-ca-certfile value | (empty) | Worker 验证 GPUStack Server 使用的 PEM CA 证书包路径。Server 证书由私有 CA 签发时,必须设置。 |
--force-auth-localhost | (unset) | (已弃用,无作用)localhost 调用始终要求身份认证。为向后兼容保留此选项,将在未来版本中移除。 |
--disable-update-check | False | 禁用更新检查。 |
--ota-server-url value | (empty) | 官方内容来源使用的 OTA Server URL,索引和文件直接位于该 URL 下,例如 https://ota.example.com/gpustack。默认使用公共 OTA Server;网络无法访问公共服务时,可指向自己的副本,也可通过自己的仓库为内部部署提供内容。此设置同时覆盖三类内容,内容仍标记为 Official 并持续自动更新,UI 中的 Reset to Official Source 也会回到该地址。参阅 OTA 内容更新。 |
--disable-openapi-docs | False | 禁用自动生成的 OpenAPI 文档端点(/docs 上的 Swagger UI、/redoc 上的 ReDoc,以及 /openapi.json 上的原始规范)。 |
--model-catalog-file value | (empty) | 模型目录文件的路径或 URL。 |
--enable-cors | False | 在 Server 上启用跨源资源共享(CORS)。 |
--allow-credentials | False | 允许跨源请求携带 cookie 和凭据。 |
--allow-origins value | ["*"] | 允许跨源请求的来源。多个来源需多次指定此参数。示例:--allow-origins https://example.com --allow-origins https://api.example.com |
--allow-methods value | ["GET", "POST"] | 允许跨源请求的 HTTP 方法。多个方法需多次指定此参数。示例:--allow-methods GET --allow-methods POST |
--allow-headers value | ["Authorization", "Content-Type", "X-API-Key"] | 允许跨源请求的 HTTP 请求头。多个请求头需多次指定此参数。示例:--allow-headers Authorization --allow-headers X-API-Key --allow-headers Content-Type |
--oidc-issuer value | (empty) | OpenID Connect 签发者 URL。 |
--oidc-client-id value | (empty) | OpenID Connect 客户端 ID。 |
--oidc-client-secret value | (empty) | OpenID Connect 客户端密钥。 |
--oidc-redirect-uri value | (empty) | OIDC 应用中配置的重定向 URI,必须设置为 <server-url>/auth/oidc/callback。 |
--external-auth-post-logout-redirect-key value | (empty) | 不同 IdP 在注销后重定向时使用的通用参数名称,同时适用于 OIDC 和 SAML。 |
--oidc-skip-userinfo | False | 跳过请求 OIDC userinfo_endpoint,改为尝试直接从请求头解析用户信息。 |
--oidc-use-userinfo | (empty) | [已弃用] 身份认证后,使用 UserInfo 端点获取用户详情。 |
--saml-idp-server-url value | (empty) | SAML 身份提供方 Server URL。 |
--saml-idp-entity-id value | (empty) | SAML 身份提供方实体 ID。 |
--saml-idp-x509-cert value | (empty) | SAML 身份提供方 X.509 证书。 |
--saml-sp-entity-id value | (empty) | SAML 服务提供方实体 ID。 |
--saml-sp-acs-url value | (empty) | SAML 服务提供方断言消费服务 URL,必须设置为 <server-url>/auth/saml/callback。 |
--saml-sp-x509-cert value | (empty) | SAML 服务提供方 X.509 证书。 |
--saml-sp-private-key value | (empty) | SAML 服务提供方私钥。 |
--saml-idp-logout-url value | (empty) | SAML 身份提供方单点注销端点 URL。 |
--saml-sp-slo-url value | (empty) | SAML 服务提供方单点注销服务回调 URL(例如 <server-url>/auth/saml/logout/callback)。 |
--saml-security value | (empty) | JSON 格式的 SAML 安全设置。 |
--cas-server-url value | (empty) | CAS(Central Authentication Service)Server 的基础 URL,例如 https://cas.example.com/cas。设置后启用 CAS 登录。 |
--cas-callback-url value | (empty) | 向 CAS Server 注册的 CAS 回调 URL。未设置时,默认为 <server-url>/auth/cas/callback。 |
--cas-validate-endpoint value | /p3/serviceValidate | CAS 票据验证端点,相对于 --cas-server-url。对于 CAS 3.0 之前的 Server,请使用 /serviceValidate(不支持属性)。 |
--cas-username-attribute value | (empty) | 用作 GPUStack 用户名的 CAS XML 属性名称。未设置时,默认使用 CAS 的 cas:user 元素。 |
--cas-full-name-attribute value | (empty) | 用作用户全名的 CAS XML 属性名称。 |
--cas-avatar-attribute value | (empty) | 用作用户头像 URL 的 CAS XML 属性名称。 |
--external-auth-provider-name value | (empty) | 登录页面 SSO 按钮显示的身份提供方名称,例如 Okta。未设置时,默认使用协议名称(OIDC/SAML/CAS)。 |
--external-auth-name value | (empty) | 外部身份认证用户信息到用户名的映射,例如 preferred_username。 |
--external-auth-full-name value | (empty) | 外部身份认证用户信息到用户全名的映射,可组合多个元素,例如 name 或 firstName+lastName。 |
--external-auth-avatar-url value | (empty) | 外部身份认证用户信息到用户头像 URL 的映射。 |
--external-auth-default-inactive | False | 设为 True 时,新用户默认处于停用状态。 |
--external-auth-insecure-skip-tls-verify | False | 跳过外部身份认证 IdP 握手的 TLS 验证(OIDC/CAS)。仅用于测试自签名 IdP,切勿用于生产环境。 |
--server-external-url value | (empty) | 供 Worker 注册使用的 Server 外部 URL。通过云服务提供商创建 Worker 时,必须设置此选项,以确保 Worker 正确连接 Server。 |
--trusted-hosts value | (empty) | 反向代理后 the X-Forwarded-Host 请求头的允许列表。未设置时,从 --server-external-url 推导。两者均未设置时,默认为 *,信任所有主机(除非 Server 只能通过可信代理访问,否则不推荐)。 |
--saml-sp-attribute-prefix value | (empty) | SAML 服务提供方属性前缀,用于获取 --external-auth-* 指定的属性。 |
--gateway-concurrency value | 16 | 内置网关的并发连接数。 |
--disable-builtin-observability | False | 禁用内置 Grafana 和 Prometheus 服务。 |
--builtin-prometheus-port value | 19090 | 内置 Prometheus 服务端口。 |
--builtin-grafana-port value | 13000 | 内置 Grafana 服务端口。 |
--prometheus-url value | (empty) | 用于查询的外部 Prometheus 基础 URL。未设置时,若内置服务已启用,则使用内置服务。对于使用自有可观测性体系的部署,可设置此选项,以继续使用依赖指标的功能(模型与 PD 仪表盘、带宽自检)。 |
--grafana-url value | (empty) | Grafana 基础 URL,用于仪表盘重定向和代理。必须能从浏览器访问(不能仅为容器内部主机名)。设置后,内置 Grafana 和 Prometheus 将被禁用。仅使用外部 Grafana 时需要。 |
--grafana-worker-dashboard-uid value | (empty) | Worker 仪表盘重定向使用的 Grafana 仪表盘 UID。 |
--grafana-model-dashboard-uid value | (empty) | 模型仪表盘重定向使用的 Grafana 仪表盘 UID。 |
Worker 选项
参数 | 默认值 | 说明 |
|---|---|---|
-t value, --token value | Auto-generated. | 注册 Worker 使用的共享密钥。 |
-s value, --server-url value | (empty) | 要连接的 Server。 |
--worker-name value | (empty) | Worker 节点名称,默认使用主机名。 |
--worker-ip value | (empty) | Worker 节点 IP 地址,默认自动检测。 |
--disable-worker-metrics | False | 禁用指标。 |
--worker-metrics-port value | 10151 | 指标暴露端口。 |
--worker-port value | 10150 | Worker 监听端口。所有 Worker 应使用相同的值。 |
--service-port-range value | 40000-40063 | 推理服务端口范围,以 'N1-N2' 格式的字符串指定,包含范围两端。 |
--ray-port-range value | 41000-41999 | Ray 服务端口范围(用于 vLLM 分布式部署),以 'N1-N2' 格式的字符串指定,包含范围两端。 |
--log-dir value | (empty) | 日志存储目录。 |
--system-reserved value | (empty) | 调度时为 Worker 预留的系统资源,单位为 GiB。默认不预留资源,示例:'{\"ram\": 2, \"vram\": 1}'。 |
--enable-hf-transfer | False | [已弃用] huggingface_hub v1.0 已移除 hf_transfer 支持,此参数不再生效。当前默认下载器为 hf_xet。 |
--enable-hf-xet | False | [已弃用] 启用 Hugging Face Xet 下载模型文件。 |
--worker-ifname value | (empty) | Worker 节点的网络接口名称,默认自动检测。 |
--kv-transfer-ifname value | (empty) | 预填充与解码分离部署中承载 KV-cache 流量的网络接口。宿主机只有一个可路由接口时自动检测;存在多个接口时必须指定,选错接口会导致引擎公布对端无法访问的地址。 |
--proxy-mode value | (empty) | 访问模型实例的代理模式:direct、worker 或 tunnel(Worker 主动连接 Server,适用于防火墙或 NAT 后的 Worker)。内置 Worker 默认为 direct,独立 Worker 默认为 worker。 |
--benchmark-image-repo value | gpustack/benchmark-runner | 覆盖 GPUStack 基准测试容器的默认镜像仓库。与 --image-repo 不同,此值直接使用,因此需包含标签。如果镜像 gpustack/benchmark-runner:<tag> 位于 gpustack 命名空间之外,例如 awesome.com/amazing-group/amazing-subgroup/gpustack-ai/benchmark-runner:<tag>,请先将 --system-default-container-registry=awesome.com/amazing-group/amazing-subgroup 指向包含父命名空间的镜像仓库,再将此参数(或 Worker 的 benchmark_image_repo 配置键,或 GPUSTACK_BENCHMARK_IMAGE_REPO 环境变量)设置为 gpustack-ai/benchmark-runner:<tag>。 |
--benchmark-dir value | <data-dir>/benchmarks | 基准测试结果存储目录。 |
--benchmark-max-duration-seconds value | (empty) | 基准测试超时前的最长运行时间。为空时不限制。 |
可用环境变量
大多数命令行参数也可通过带有 GPUSTACK_ 前缀的全大写环境变量 设置(例如,可通过 GPUSTACK_DATA_DIR 设置 --data-dir)。
对于上述命令行参数之外的环境变量,请参阅 环境变量文档。
配置文件
启动 GPUStack Server 或 Worker 时,可使用 YAML 格式的配置文件设置启动选项。以下为 完整示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |