开发者指南¶
欢迎来到 gpuctl 开发者文档!本章面向希望了解 gpuctl 内部实现、进行二次开发或贡献代码的工程师。
技术栈¶
| 层次 | 技术 |
|---|---|
| CLI | Python 3.8+ + argparse |
| API 服务 | FastAPI + uvicorn |
| 数据模型 | Pydantic v2 |
| K8s 交互 | kubernetes-client/python |
| 配置解析 | PyYAML |
| 打包 | PyInstaller(二进制)/ Poetry(Python 包) |
代码模块总览¶
gpuctl/
├── gpuctl/
│ ├── api/ 数据模型层(Pydantic)
│ ├── parser/ YAML 解析与校验
│ ├── builder/ 模型 → K8s 资源构建
│ ├── client/ K8s API 操作封装
│ ├── kind/ 场景化业务逻辑
│ ├── cli/ 命令行入口(argparse)
│ └── constants.py 全局常量
├── server/
│ ├── main.py FastAPI 应用入口
│ ├── models.py API 请求/响应模型
│ └── routes/ 路由分组
├── tests/ 测试用例
├── doc/ 原始设计文档
├── mkdocs.yml 文档站点配置
└── docs/ 文档源文件(公开文档 + 内部设计文档)
数据流¶
用户的 YAML 文件经过以下链路处理后提交到 Kubernetes:
用户 YAML 文件
│
▼ BaseParser.parse_yaml_file()
Pydantic 数据模型(api/)
│
▼ XxxBuilder.build()
K8s 资源对象(kubernetes-client 对象)
│
▼ XxxClient.create()
Kubernetes API Server