# 源树分析 ## 项目目录结构 ``` vk-eci/ ├── .circleci/ # CI/CD配置 │ └── config.yml # CircleCI配置 ├── .claude/ # Claude Code配置 ├── .github/ # GitHub配置 ├── bmad/ # BMad工作流框架 ├── cmd/ # 命令行入口 │ └── virtual-kubelet/ # 虚拟Kubelet命令行 │ ├── commands/ # 子命令定义 │ │ ├── providers/ # Provider相关命令 │ │ ├── root/ # 根命令和配置 │ │ └── version/ # 版本命令 │ └── main.go # 程序主入口 ├── docs/ # 项目文档 │ ├── eci.md # ECI相关文档 │ ├── product-brief-vk-eci-2025-11-06.md # 产品简介 │ └── technology-stack.md # 技术栈文档 ├── eci/ # ECI客户端实现 │ ├── client.go # ECI客户端 │ ├── create_container_group.go # 创建容器组 │ ├── delete_container_group.go # 删除容器组 │ ├── describe_container_groups.go # 描述容器组 │ ├── describe_container_log.go # 获取容器日志 │ └── struct_config_file_to_path.go # 配置结构转换 ├── hack/ # 构建和开发工具 │ └── ci/ # CI相关脚本 ├── eci.go # 主要Provider实现 ├── config.go # 配置管理 ├── errors.go # 错误定义 ├── eci.toml # 配置文件示例 ├── eci.svg # 项目图标 ├── go.mod # Go模块定义 ├── go.sum # 依赖校验和 ├── Makefile # 构建脚本 ├── Dockerfile # 容器化构建 ├── README.md # 项目说明 └── CLAUDE.md # Claude Code指导 ``` ## 关键目录说明 ### cmd/ - 命令行入口 - **virtual-kubelet/main.go** - 程序主入口,使用Cobra框架 - **commands/root/** - 根命令定义和全局配置 - **commands/providers/** - Provider相关子命令 - **commands/version/** - 版本信息命令 ### eci/ - ECI客户端实现 - **client.go** - ECI API客户端核心实现 - **create_container_group.go** - 创建ECI容器组 - **delete_container_group.go** - 删除ECI容器组 - **describe_container_groups.go** - 查询ECI容器组状态 - **describe_container_log.go** - 获取容器日志 ### 核心文件 - **eci.go** - Virtual Kubelet Provider主要实现 - 实现Provider接口 - 处理Pod生命周期 - 与ECI API交互 - **config.go** - 配置管理 - TOML配置文件解析 - 环境变量支持 - 默认配置设置 - **errors.go** - 错误定义和分类 ### 构建和部署 - **Makefile** - 自动化构建脚本 - **Dockerfile** - 多阶段容器构建 - **.circleci/config.yml** - CI/CD流水线 ### 文档 - **docs/** - 项目文档目录 - **README.md** - 项目概述和使用说明 - **CLAUDE.md** - Claude Code项目指导 ## 架构特点 ### 模块化设计 - **清晰的职责分离** - 命令行、Provider、ECI客户端各司其职 - **接口驱动** - 遵循Virtual Kubelet Provider接口规范 - **配置解耦** - 配置管理独立于业务逻辑 ### 扩展性 - **Cobra框架** - 支持命令扩展 - **Provider模式** - 易于添加新的云提供商 - **模块化ECI客户端** - 支持ECI API扩展 ### 可维护性 - **标准Go项目结构** - 遵循Go语言最佳实践 - **清晰的包组织** - 按功能模块划分 - **完整的构建工具** - 支持开发、测试、部署全流程 ## 集成点 ### 与Kubernetes集成 - 通过Virtual Kubelet框架与Kubernetes API服务器通信 - 实现标准的Provider接口 - 支持Pod调度到ECI实例 ### 与阿里云ECI集成 - 使用阿里云官方SDK - 实现ECI API客户端 - 处理容器组生命周期管理 ### 配置管理 - 支持TOML配置文件 - 环境变量覆盖 - 合理的默认值设置 --- *此文档提供了项目的完整目录结构和关键文件说明,帮助理解项目组织架构。*