标准部署指南
📘 概述
本指南详细介绍如何在 生产环境 中使用 Helm Chart 部署 CSGHUB。
生产部署相较测试环境对 高可用性、安全性、可维护性 要求更高,请严格遵循以下步骤执行。
⚙️ 前置条件
✅ 环境要求
| 项目 | 要求 |
|---|---|
| Kubernetes 集群 | v1.28+,已正确配置网络与存储 |
| Helm | v3.12.0+,具有集群管理员权限 |
| 域名 | 已注册域名并具备 DNS 解析权限 |
| 存储 | 已配置支持动态卷供应(Dynamic Provisioning)的 StorageClass |
💡 建议:在生产环境中使用外部数据库与高可用对象存储(如 AWS RDS、MinIO HA 或 Ceph)。
💾 资源规划
请根据预期使用规模合理规划资源:
| 资源类型 | 小型团队 | 中型团队 | 大型团队 |
|---|---|---|---|
| 节点数量 | 3 | 5–10 | 10+ |
| CPU 总核数 | 16 核 | 32 核 | 64+ 核 |
| 内存总量 | 32 GB | 64 GB | 128+ GB |
| 存储容量 | 1 TB | 2–5 TB | 5+ TB |
⚠️ 注意:请确保节点之间的时钟同步(建议使用 NTP),并提前配置足够的 Ingress 带宽与 LoadBalancer 资源。
🧩 部署步骤
1️⃣ 添加 Helm 仓库
# 添加 CSGHUB Helm 仓库
helm repo add csghub https://charts.opencsg.com/repository/csghub
# 更新仓库索引
helm repo update
# 验证仓库是否添加成功
helm search repo csghub
2️⃣ 安装 CSGHub
helm upgrade --install csghub csghub/csghub \
--namespace csghub \
--create-namespace \
--set global.ingress.domain="<your-domain>" # 例如 example.com
安装成功后,你将看到类似以下输出:
Release "csghub" has been upgraded. Happy Helming!
NAME: csghub
NAMESPACE: csghub
STATUS: deployed
APP VERSION: v1.12.0
✅ CSGHub has been successfully installed!
---
🔗 CSGHub & 🔐 Casdoor & 🕓 Temporal Admin Console
Access your CSGHub or Casdoor or Temporal instance:
🌐 CSGHub: http://csghub.example.com
🔐 Casdoor Admin Console: http://casdoor.example.com
🕓 Temporal Admin Console: http://csghub.example.com/-/temporal
🔑 Credentials: root / NTRyMTNDY4MDFjVkMTEDJiMWUlc2MjQl
🔗 访问服务
以下为默认访问入口与管理信息:
| 服务 | 访问地址 | 默认凭据 |
|---|---|---|
| 🌐 CSGHUB 主界面 | http://csghub.example.com | 随机生成 |
| 🔐 Casdoor 控制台 | http://casdoor.example.com | 随机生成 |
| 🕓 Temporal 控制台 | http://csghub.example.com/-/temporal | 随机生成 |
可通过以下命令获取管理员账号与密码:
# 获取 Casdoor 管理员账号
kubectl get secret -n csghub csghub-casdoor-init \
-o jsonpath='{.data.INIT_ADMIN_USER}' | base64 -d && echo -n " / " && \
kubectl get secret -n csghub csghub-casdoor-init \
-o jsonpath='{.data.INIT_ADMIN_PASSWORD}' | base64 -d
💾 MinIO 控制台
Address: http://minio.example.com:30080/console/
Credentials:
kubectl get secret -n csghub csghub-minio \
-o jsonpath='{.data.MINIO_ROOT_USER}' | base64 -d && \
echo -n " / " && \
kubectl get secret -n csghub csghub-minio \
-o jsonpath='{.data.MINIO_ROOT_PASSWORD}' | base64 -d
📦 镜像仓库(Registry)
默认部署包含私有镜像仓库:
Endpoint: csghub.example.com:30080
Credentials:
kubectl get secret -n csghub csghub-registry \
-o jsonpath='{.data.REGISTRY_USERNAME}' | base64 -d && \
echo -n " / " && \
kubectl get secret -n csghub csghub-registry \
-o jsonpath='{.data.REGISTRY_PASSWORD}' | base64 -d
登录命令示例:
kubectl get secret -n csghub csghub-registry \
-o jsonpath='{.data.REGISTRY_PASSWORD}' | base64 -d | \
docker login csghub.example.com \
--username "$(kubectl get secret -n csghub csghub-registry \
-o jsonpath='{.data.REGISTRY_USERNAME}' | base64 -d)" \
--password-stdin
# 推拉镜像示例
docker pull csghub.example.com/test:latest
docker push csghub.example.com/test:latest
⚠️ 提示:默认仓库为基础版本,建议在生产环境中接入企业级 Registry 服务。
🔒 启用 HTTPS 访问
为提升安全性,推荐启用 TLS 加密访问。
1️⃣ 创建 TLS Secret
准备受信任的 TLS 证书(可为泛域名或多域名证书),并创建 Secret:
kubectl -n csghub create secret tls csghub-tls-certs \
--cert=fullchain.pem \
--key=privkey.pem
2️⃣ 启用 TLS 参数
helm upgrade --install csghub csghub/csghub \
--namespace csghub \
--set global.ingress.domain="<your-domain>" \
--set global.ingress.tls.enabled=true \
--set global.ingress.tls.secretName="csghub-tls-certs"
💡 若使用单域名证书,请为各服务分别指定 secretName:
--set portal.ingress.tls.secretName="portal-tls-certs" \
--set minio.ingress.tls.secretName="minio-tls-certs" \
--set casdoor.ingress.tls.secretName="casdoor-tls-certs"
⚡ 自动组件配置
CSGHUB 支持自动安装与配置以下组件:
- 🧭 Knative Serving
- 🌀 Argo Workflow
- ⚙️ LWS(Lightweight Scheduler)
默认情况下 autoConfigure 为启用状态。
--set runner.autoConfigure=true
可通过以下参数控制命名空间安装模式:
| 参数 | 说明 |
|---|---|
runner.mergingNamespace=disable | 标准模式:为各组件创建独立命名空间(默认) |
runner.mergingNamespace=multi | 合理合并部分组件命名空间 |
runner.mergingNamespace=single | 所有组件安装至同一命名空间 |
📚 参考资料
- 官方文档:https://github.com/OpenCSGs/csghub-charts
- Helm 文档:https://helm.sh/docs/
- Kubernetes 官方指南:https://kubernetes.io/docs/