跳到主要内容

标准部署指南

📘 概述

本指南详细介绍如何在 生产环境 中使用 Helm Chart 部署 CSGHUB

生产部署相较测试环境对 高可用性、安全性、可维护性 要求更高,请严格遵循以下步骤执行。


⚙️ 前置条件

✅ 环境要求

项目要求
Kubernetes 集群v1.28+,已正确配置网络与存储
Helmv3.12.0+,具有集群管理员权限
域名已注册域名并具备 DNS 解析权限
存储已配置支持动态卷供应(Dynamic Provisioning)的 StorageClass

💡 建议:在生产环境中使用外部数据库与高可用对象存储(如 AWS RDS、MinIO HA 或 Ceph)。


💾 资源规划

请根据预期使用规模合理规划资源:

资源类型小型团队中型团队大型团队
节点数量35–1010+
CPU 总核数16 核32 核64+ 核
内存总量32 GB64 GB128+ GB
存储容量1 TB2–5 TB5+ 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所有组件安装至同一命名空间

📚 参考资料