Runner 部署指南
📘 概述
CSGHUB Runner 是 CSGHub 平台中负责执行模型训练、推理、任务调度等计算任务的核心组件。
通过 Runner,可以实现与主控制端(CSGHUB Server)的通信,并在 Kubernetes 集群中动态创建与销毁用户工作负载。
本 Chart 通过 Helm 提供标准化部署方式,支持灵活配置、外部依赖集成以及自动化资源管理。
⚙️ 环境要求
| 项目 | 说明 |
|---|---|
| Kubernetes 版本 | v1.28+ |
| Helm 版本 | v3.12+ |
| 网络要求 | 集群节点需能访问 CSGHub Server 与外部镜像仓库(如果内部镜像仓库被禁用) |
| 权限要求 | 具备 cluster-admin 或能创建命名空间与 RBAC 资源的权限(部署过程中会自动创建) |
📦 安装步骤
1️⃣ 添加 Helm 仓库
helm repo add csghub https://charts.opencsg.com/csghub
helm repo update
2️⃣ 创建命名空间(可选)
kubectl create namespace csghub
3️⃣ 部署 Runner
以下信息从 CSGHub 主服务处获取:
-
domain这里需要提供一个二级域名用于暴露 runner 服务。
如果提供的域名是
example.com,服务将暴露在runner.example.com下。 -
externalUrlhelm get notes csghub -n csghub | grep -A 6 'Access your CSGHub'获取 CSGHub 对应的URL。
-
hubAPITokenkubectl get cm csghub-core -o yaml -n csghub | grep 'API_TOKEN' | awk '{print $NF}' -
region这是一个自定义的参数,用来标识集群的区域,例如
cn-north。 -
registry.*helm get notes csghub -n csghub | grep -A 8 'Minio Console'分别获取字段
<domain>,username,password。insecure根据externalUrl是否启用 HTTPS加密访问决定。 -
objectStorehelm get notes csghub -n csghub | grep -A 8 'Distribution Registry'上面命令中提供了
endpoint,accessKey,secretKey。bucket,region,pathStyle是固定值secure根据externalUrl是否启用 HTTPS 加密访问决定。
-
执行部署操作
提示: 对象存储和容器镜像仓库可以直接对接外部的其他基础设施。
helm install runner csghub/runner \
--namespace csghub \
--create-namespace \
--set global.ingress.domain="example.com" \
--set externalUrl="<csghub external_url>" \
--set hubAPIToken="<csghub hub_api_token>" \
--set region="<region name>" \
--set registry.registry="<csghub registry>" \
--set registry.repository="csghub" \
--set registry.username="<csghub registry username>" \
--set registry.password="<csghub registry password>" \
--set registry.insecure="<if csghub registry secure>" \
--set objectStore.endpoint="<csghub minio>" \
--set objectStore.accessKey="<csghub minio username>" \
--set objectStore.secretKey="<csghub minio password>" \
--set objectStore.bucket="csghub-registry" \
--set objectStore.region="cn-north-1" \
--set objectStore.secure="false" \
--set objectStore.pathStyle="true"
💡 提示:建议将自定义配置写入 custom-values.yaml,方便后续升级与版本管理。