欧拉智算 · EULER
技术预览

平台与当前能力

欧拉智算是一个轻量算力控制平面:把平台节点和用户贡献节点汇入资源池,运行受限 Docker 工作负载,并为已有 HTTP Agent 提供健康检查、调用网关与用量观测。

  • 容器任务:CPU、内存、超时、重试、取消、实时日志与 NVIDIA 整卡 GPU 请求
  • 算力节点:一次性注册令牌、资源心跳、节点审批、信任等级、排空与离线检测
  • Agent API:多实例权重、健康检查、普通 HTTP / SSE 转发、调用统计
  • 项目配额:CPU/GPU 时间、调用次数、并发任务和项目 API Key

当前边界:GPU 仅支持 NVIDIA 整卡分配;暂不支持 MIG、多机训练、共享 KV Cache、付费结算或多区域高可用。

登录与创建任务

进入 控制台 并使用 E时代通行证登录。登录后会自动创建默认项目和免费配额。

通过 REST API 创建容器任务

curl -X POST "$EULER_URL/api/v1/jobs" \
  -H "X-Euler-API-Key: $EULER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "hello-euler",
    "image": "alpine:3.20",
    "command": ["sh", "-c", "echo hello from Euler"],
    "cpu_milli": 500,
    "memory_bytes": 268435456,
    "gpu_count": 0,
    "timeout_seconds": 300
  }'

任务会经历 queued → assigned → running → succeeded/failed 状态。可在控制台查看日志、取消或重试。

托管工作负载

Docker 与 GPU 任务

调度器按 CPU、内存、GPU、区域、节点标签、信任等级和项目归属筛选节点,再按剩余容量评分。

  • 容器默认启用 no-new-privileges、移除 Linux capabilities,并限制 PID 数量
  • 禁止 privileged、host network、宿主机目录和 Docker socket 挂载
  • 任务环境变量使用 AES-GCM 加密,仅下发给平台可信节点
  • GPU 任务通过 NVIDIA Container Runtime 的 --gpus count=N 执行
  • 节点掉线或 Agent 重启时,任务按重试策略重新排队或标记失联

Euler Node Agent

在控制台创建一次性节点令牌,然后在 Linux / Docker 主机启动节点 Agent:

export EULER_CONTROL_PLANE_URL=https://your-euler.example.com
export EULER_ENROLLMENT_TOKEN=euler_enroll_xxx
export EULER_NODE_NAME=my-node
export EULER_NODE_REGION=cn-east-1
./euler-node

节点注册后需管理员批准。平台节点、社区节点和不可信节点采用不同调度策略;用户贡献节点加入公共池前必须经过审核。

安全提示:Node Agent 使用 Docker socket 时等同拥有宿主机 root 权限,应部署在独立节点并限制管理人员。

外部服务接入

外部 Agent API 网关

如果 Agent 已经独立部署,不必迁入容器任务。可在控制台登记 Base URL、健康路径、权重和认证 Header。

curl -X POST "$EULER_URL/api/v1/agents/my-agent/invoke/v1/chat" \
  -H "X-Euler-API-Key: $EULER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"hello"}'

网关支持普通 HTTP 和 SSE 流式响应,自动选择同名健康实例,记录延迟、成功率和项目调用量。

鉴权与安全边界

  • 控制台使用 OIDC 会话和 HttpOnly Cookie;自动化调用使用项目 API Key
  • 节点令牌、项目 API Key 和一次性注册链接只显示一次,数据库仅保存哈希
  • 外部 Agent 密钥和任务环境变量加密保存
  • 外部 Agent 默认禁止回环、内网、链路本地和云元数据地址,降低 SSRF 风险
  • 远程节点必须通过 HTTPS 接入;HTTP 仅允许隔离测试网络

完整接口列表请参考仓库中的 docs/api.md