sseinfra
🛡
👤 个人管理 登出
📦 Pod 🛡 攻防态势 👤 个人管理 登出

📖 sseinfra 平台文档

学生容器开发平台 — 从创建 Pod 到部署应用,一站式开发运维指南

🚀 快速开始

三步上手:创建 Pod → 连接 → 部署

1. 创建 Pod

登录后点击左侧 Pod+ 新建,选择类型和资源:

  • cpu — 纯 CPU 容器,适合 Web 服务、数据处理
  • gpu — 带 GPU 的容器,适合模型推理、训练

2. 连接 Pod

创建后自动获得:

ssh -p <SSH端口> cloud@ssemarket.cn
# 密码在 Pod 详情 → 连接 tab 查看

# 或使用 Web 终端(浏览器内直接操作)

3. 部署应用

两种方式:

  • 绑仓库 — 平台自动 clone 仓库并执行 deploy.sh,支持 push 自动部署
  • 本地脚本 — 指定 Pod 内脚本路径,平台用 supervisord 托管

应用绑定 0.0.0.0:8080 即可通过公网访问。

📦

Pod

隔离的容器环境,持久存储,SSH/终端访问

🚀

部署

Git 仓库一键部署,supervisord 托管,健康检查

🗄️

数据库

MySQL / Redis / Qdrant / MinIO 按需申请

🤖

AI 助手

内置 AI 助手,可在 Pod 内执行命令、分析日志

📦 Pod 管理

Pod 类型

  • cpu — 纯 CPU 容器,默认 2 CPU / 4Gi 内存,可调整
  • gpu — GPU 容器,默认含 1 张 GPU + 2 CPU / 8Gi 内存

资源规格

Owner 可在 设置 tab 中调整 CPU、内存、持久存储大小。调整 CPU/内存会重启 Pod。

持久存储

/home/cloud 目录持久化,Pod 重启不丢数据。挂载点为主机路径 /mnt/sdb/groups/<pod名>/home

共享存储(只读)

/shared 挂载了公共模型权重和数据集:

ls /shared/weights/          # 查看可用模型
ls /shared/datasets/        # 查看可用数据集

生命周期

Owner 可启动/停止/重启 Pod。停止会将副本缩容到 0(节省资源),启动恢复到 1。

成员管理

Owner 可邀请其他用户为 Member,或移除成员。非成员可申请加入,待 Owner 审批。

🚀 部署

绑仓库部署

平台 clone 仓库后执行 deploy.sh,由 supervisord 托管进程:

# deploy.sh 示例
pip install -r requirements.txt
python app.py

支持 Gitee 和 GitHub 仓库。私有仓库需提供 Token。

本地脚本部署

指定 Pod 内脚本路径(如 /home/cloud/myapp/start.sh),平台直接托管执行。

部署类型

  • 常驻服务 — autorestart=true,崩溃自动重启
  • 一次性脚本 — 执行完退出,不自动重启

调度类型

  • 推理服务 — 绑定指定 GPU,常驻运行
  • 训练任务 — 池化 GPU 调度,支持 checkpoint/恢复

健康检查

配置健康检查路径(如 /health),部署后平台等待 HTTP 2xx 响应。失败自动回滚到上一个好的版本。

Push 自动部署

勾选后,push 到指定分支会触发 Webhook,自动重新部署。

环境变量

部署时自动注入以下环境变量:

PORT=8080
LOG_DIR=/home/cloud/logs
GROUP_NAME=<pod名>
PUBLIC_URL=http://ssemarket.cn:<端口>
MYSQL_HOST / MYSQL_PORT / MYSQL_USER / MYSQL_PASSWORD / MYSQL_DB
REDIS_HOST / REDIS_PORT / REDIS_USER / REDIS_PASSWORD
QDRANT_ENDPOINT / QDRANT_API_KEY
MINIO_ENDPOINT / MINIO_ACCESS_KEY / MINIO_SECRET / MINIO_BUCKET
CUDA_VISIBLE_DEVICES=<GPU ID>
DEPLOY_ID / DEPLOY_NAME / DEPLOY_REF
REPORT_URL / REPORT_TOKEN

🗄️ 服务与凭证

MySQL

公共 MySQL 实例,按组分配独立用户/库/密码。

# Pod 内连接
mysql -h mysql.platform-infra.svc.cluster.local -P 3306 -u <用户> -p

# 从 ssemarket.cn 本机(经 frp 隧道)
mysql -h 127.0.0.1 -P 25006 -u <用户> -p

Redis

公共 Redis 实例,按组分配键前缀隔离。

redis-cli -h redis.platform-infra.svc.cluster.local -p 6379 -a <密码>

Qdrant

向量数据库,按组分配集合前缀和 API Key。

# HTTP
http://qdrant.platform-infra.svc.cluster.local:6333
# gRPC
qdrant.platform-infra.svc.cluster.local:6334

MinIO 对象存储

S3 兼容对象存储,按组分配桶和访问密钥。

endpoint: http://minio.platform-infra.svc.cluster.local:9000
bucket: <组名>
access_key / secret: 在凭证 tab 查看

申请凭证

Owner 在 凭证 tab 中申请,每种服务每组最多一个。申请后凭证自动注入部署环境变量。

📊 日志与监控

应用日志

应用将日志写到 /home/cloud/logs/ 目录,平台自动收集展示。在 Pod 详情 → 日志 tab 中可同时查看容器日志和应用日志:

# Python 示例
import logging, os
logging.basicConfig(
    filename=os.path.join(os.environ.get('LOG_DIR', '/home/cloud/logs'), 'app.log'),
    level=logging.INFO
)
logging.info('应用启动')
# Node.js 示例
const fs = require('fs');
const logDir = process.env.LOG_DIR || '/home/cloud/logs';
const log = (msg) => fs.appendFileSync(logDir + '/app.log', new Date().toISOString() + ' ' + msg + '\\n');

在 Pod 详情 → 日志 tab 中查看所有日志文件,支持实时流和 🤖 AI 分析

资源监控

在 Pod 详情 → 监控 tab 中实时查看:

  • CPU / 内存使用量(来自 kubectl top pod)
  • GPU 利用率、显存、温度、功耗(GPU Pod)
  • Kubernetes 事件流(Normal / Warning)

快速模板

在部署 tab 中选择预设模板,一键生成项目骨架并自动部署:

  • Flask — Python Web 服务,含 /health 健康检查
  • FastAPI — 异步 API 服务,高性能
  • Node.js — 原生 HTTP 服务
  • Streamlit — 数据可视化应用
  • vLLM 推理 — 模型推理服务,OpenAI 兼容 API

部署日志

supervisord 管理的部署服务,stdout/stderr 自动记录到 ~/deploy/<name>/logs/。在部署 tab 中查看,支持实时流。

容器日志

Pod 容器的 stdout 输出(kubectl logs),在完整管理页面的生命周期区域查看。

应用自上报

应用可通过 HTTP POST 上报状态:

curl -X POST "$REPORT_URL" \
  -H "Content-Type: application/json" \
  -d '{"deploy_id":"'$DEPLOY_ID'",
       "token":"'$REPORT_TOKEN'",
       "state":"ready",
       "metrics":"qps=100 latency=50ms",
       "message":"服务正常"}'

🤖 AI 助手

平台内置 AI 助手,支持多种模式:

平台运维 (ops)

在平台主机上执行命令,适合查看系统状态、管理服务。需要 infra.host 权限。

Pod 开发 (build)

在 Pod 内执行命令,适合开发调试、安装依赖、查看日志。需要 Pod 访问权限。

数据库管理 (db)

操作 MySQL / Redis / Qdrant,查看数据、执行查询。

存储管理 (storage)

操作 MinIO 对象存储,上传/下载/管理文件。

使用方式

  • 点击右下角 🤖 按钮打开助手面板
  • 选择助手类型和目标 Pod(如适用)
  • 输入自然语言指令,助手自动执行
  • 支持多轮对话、会话管理

日志分析

在日志 tab 中点击 🤖 AI 分析,助手自动分析日志内容,找出错误模式并给出修复建议。

🔌 API 参考

平台提供 REST API,Base URL: http://ssemarket.cn:24000/api/v1

认证

使用 Session Cookie(登录后获取)或 API Token(在个人设置中生成)。

核心端点

GET  /groups                    # 列出所有组
GET  /groups/<name>              # 组详情
POST /groups/<name>/deploy/<id>/run   # 触发部署
POST /groups/<name>/deploy/<id>/stop  # 停止部署
GET  /groups/<name>/deploy/<id>/logs  # 部署日志
GET  /groups/<name>/logs         # 容器日志
GET  /groups/<name>/metrics       # 资源指标

凭证端点

GET  /groups/<name>/creds       # 列出凭证
POST /groups/<name>/creds/apply  # 申请凭证
POST /groups/<name>/creds/revoke # 撤销凭证

应用日志端点

GET  /pods/<name>/app-logs              # 列出日志文件
GET  /pods/<name>/app-logs?file=app.log  # 读取日志内容
GET  /pods/<name>/app-logs/stream?file=app.log  # SSE 实时流

❓ FAQ

Pod 重启后数据会丢吗?

不会。/home/cloud 是持久存储,重启不丢。但 /tmp 和容器层文件系统会重置。

如何让应用通过公网访问?

应用绑定 0.0.0.0:8080,平台自动将 8080 端口映射到公网。访问地址在连接 tab 中查看。

GPU 怎么用?

GPU Pod 自动注入 CUDA_VISIBLE_DEVICES 环境变量。推理服务绑定指定 GPU;训练任务由调度器池化分配。

如何写日志让平台看到?

将日志写到 /home/cloud/logs/ 目录(环境变量 LOG_DIR),平台会自动收集展示。支持实时流和 AI 分析。

部署失败怎么办?

在部署 tab 中查看日志。如果配置了健康检查,失败会自动回滚。也可以用 AI 助手分析日志。

如何多人协作?

Owner 邀请其他用户为 Member,Member 可 SSH 连接、查看凭证、使用终端。管理操作仅 Owner 可用。

支持哪些仓库?

目前支持 GitHub 和 Gitee 的 HTTPS 仓库。私有仓库需提供 Personal Access Token。

👤 个人管理

加载中...